我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用django.core.signing.loads()。
def change_email(request, token): try: data = signing.loads(token, max_age=TOKEN_MAX_AGE) except signing.SignatureExpired: return TemplateResponse(request, 'registration/token_expired.html') except signing.BadSignature: return TemplateResponse(request, 'registration/token_invalid.html') if request.user.username != data.get('username'): return TemplateResponse(request, 'registration/token_invalid.html') email = data.get('email') try: validate_email(email) except ValidationError: return TemplateResponse(request, 'registration/token_invalid.html') request.user.email = email request.user.save() messages.success(request, _('Your email address has been changed.')) return redirect('registration_account')
def load(self): """ We load the data from the key itself instead of fetching from some external data store. Opposite of _get_session_key(), raises BadSignature if signature fails. """ try: return signing.loads(self.session_key, serializer=self.serializer, # This doesn't handle non-default expiry dates, see #19201 max_age=settings.SESSION_COOKIE_AGE, salt='django.contrib.sessions.backends.signed_cookies') except Exception: # BadSignature, ValueError, or unpickling exceptions. If any of # these happen, reset the session. self.create() return {}
def load(self): """ We load the data from the key itself instead of fetching from some external data store. Opposite of _get_session_key(), raises BadSignature if signature fails. """ try: return signing.loads( self.session_key, serializer=self.serializer, # This doesn't handle non-default expiry dates, see #19201 max_age=settings.SESSION_COOKIE_AGE, salt='django.contrib.sessions.backends.signed_cookies', ) except Exception: # BadSignature, ValueError, or unpickling exceptions. If any of # these happen, reset the session. self.create() return {}
def store_in_session(data, password, username): user = User.objects.get(username=username) data = json.loads(data) try: dec_data = signing.loads(data['secret'], key=password) except signing.BadSignature: return None enc_data = signing.dumps(dec_data) s = SessionStore() s['api_data'] = enc_data s.create() user.session.session_token = s.session_key user.save() return True
def validate_key(self, activation_key): try: username = signing.loads( activation_key, salt=settings.REGISTRATION_SALT, max_age=settings.ACCOUNT_ACTIVATION_DAYS * 86400 ) return username # SignatureExpired is a subclass of BadSignature, so this will # catch either one. except signing.SignatureExpired: self.template_name = "accounts/activation_error.html" self.error_reason = "Your code has expired" return None except signing.BadSignature: self.template_name = "accounts/activation_error.html" self.error_reason = "Bad activation key" return None
def validate_key(self, activation_key): """ Verify that the activation key is valid and within the permitted activation time window, returning the username if valid or ``None`` if not. """ try: username = signing.loads( activation_key, salt=REGISTRATION_SALT, max_age=settings.ACCOUNT_ACTIVATION_DAYS * 86400 ) return username # SignatureExpired is a subclass of BadSignature, so this will # catch either one. except signing.BadSignature: return None
def get_widget_or_404(self): """ Get and return widget from cache. Raises: Http404: If if the widget can not be found or no id is provided. Returns: ModelSelect2Mixin: Widget from cache. """ field_id = self.kwargs.get('field_id', self.request.GET.get('field_id', None)) if not field_id: raise Http404('No "field_id" provided.') try: key = signing.loads(field_id) except BadSignature: raise Http404('Invalid "field_id".') else: cache_key = '%s%s' % (settings.SELECT2_CACHE_PREFIX, key) widget_dict = cache.get(cache_key) if widget_dict is None: raise Http404('field_id not found') if widget_dict.pop('url') != self.request.path: raise Http404('field_id was issued for the view.') qs, qs.query = widget_dict.pop('queryset') self.queryset = qs.all() widget_dict['queryset'] = self.queryset widget_cls = widget_dict.pop('cls') return widget_cls(**widget_dict)
def validate_key(self, activation_key): try: username = signing.loads( activation_key, salt=REGISTRATION_SALT, max_age=ACCOUNT_ACTIVATION_DAYS * 86400) except signing.BadSignature: username = None return username
def load(self): """ We load the data from the key itself instead of fetching from some external data store. Opposite of _get_session_key(), raises BadSignature if signature fails. """ try: return signing.loads(self.session_key, serializer=self.serializer, # This doesn't handle non-default expiry dates, see #19201 max_age=settings.SESSION_COOKIE_AGE, salt='django.contrib.sessions.backends.signed_cookies') except (signing.BadSignature, ValueError): self.create() return {}
def parse_token(self, token): return signing.loads(token, key=self.key, salt=self.salt, max_age=self.ttl)
def decrypt_file(user_file, encryption_password): aes = decrypt.AESCipher(key=encryption_password) try: dec = aes.decrypt(enc=json.loads(user_file.read().decode())[ 'secret']) except UnicodeDecodeError: return False else: return dec['API']
def create_avatar_from_session(self): session_key = self.user.session.session_token s = SessionStore(session_key=session_key) dec_data = signing.loads(s['avatar']) png = base64.b64decode(dec_data.encode()) temp_file = self.temp_file('.png') temp_file.write(png) temp_file.close() self.store_in_session(temp_file.name)
def invoice(self, data): url = "https://api.sycade.com/btp-int/Invoice/Generate" headers = { 'content-type': 'application/json', 'cache-control': 'no-cache', } r = requests.request(method='POST', url=url, headers=headers, data=data) if r.status_code == 200: pdf = base64.b64decode( json.loads(r.text)['Invoice'] ) temp_file = self.temp_file(extension='.pdf', bytes_=True) temp_file.write(pdf) temp_file.close() self.store_in_session(file_path=temp_file.name) response = { 'Response': [{ 'status': 'Invoice PDF generated.' }] } return response else: # pragma: no cover error = { 'Error': [{ 'error_description_translated': ('PDF generator API' ' returned an error.') }] } logger.error(r.json()) return error
def store_in_session(self, data): data = json.loads(data) dec_data = signing.loads(data['secret'], key=self.password) enc_data = signing.dumps(dec_data) s = SessionStore() s['api_data'] = enc_data s.create() self.user.session.session_token = s.session_key self.user.save()
def get_start_session(self): with open('BunqAPI/test_files/start_session.json', 'r') as f: return json.loads(f.read())
def get_accounts(self): with open('BunqAPI/test_files/accounts.json', 'r') as f: return json.loads(f.read())
def get_payments(self): with open('BunqAPI/test_files/payments.json') as f: return json.loads(f.read())
def get_users(self): with open('BunqAPI/test_files/users.json', 'r') as f: return json.loads(f.read())
def get_card(self): with open('BunqAPI/test_files/card.json', 'r') as f: return json.loads(f.read())
def get_customer_statment(self): with open('BunqAPI/test_files/customer_statement.json', 'r') as f: return json.loads(f.read())
def get_installation(self): with open('BunqAPI/test_files/installation.json', 'r') as f: return json.loads(f.read())
def _get_user_data(self): session_key = self._user.session.session_token enc_string = Session.objects.get( session_key=session_key).get_decoded()['api_data'] dec_data = signing.loads(enc_string) self.bunq_api = dec_data
def _get_saved_response(self, name): session_key = self._user.session.session_token s = SessionStore(session_key=session_key) dec_data = signing.loads(s[name]) return dec_data
def from_key(cls, key): try: max_age = ( 60 * 60 * 24 * app_settings.EMAIL_CONFIRMATION_EXPIRE_DAYS) pk = signing.loads( key, max_age=max_age, salt=app_settings.SALT) ret = EmailConfirmationHMAC(EmailAddress.objects.get(pk=pk)) except (signing.SignatureExpired, signing.BadSignature, EmailAddress.DoesNotExist): ret = None return ret
def stripe_callback(request): # the temporary code returned from stripe code = request.GET['code'] # Data passed through from the origin state = signing.loads(request.GET['state'], salt=STRIPE_STATE_SALT) # identify what we are going to ask for from stripe data = { 'grant_type': 'authorization_code', 'code': code } # Get the access_token using the code provided resp = stripe_connect_service.get_raw_access_token(method='POST', data=data) # process the returned json object from stripe stripe_payload = json.loads(resp.text) # Get settings for updating settings = SubscriptionSettings.objects.get(pk=state['site_id']) # Update info model with credentials settings.stripe_user_id = stripe_payload['stripe_user_id'] settings.stripe_public_key = stripe_payload['stripe_publishable_key'] settings.stripe_secret_key = stripe_payload['access_token'] settings.save() # Create plans if proper settings are set if settings.premium_enabled and settings.price_month != 0.00 and settings.price_year != 0.00: setup_plans(stripe_payload['stripe_user_id'], price_month=to_cents(settings.price_month), price_year=to_cents(settings.price_year)) messages.success(request, 'Stripe account successfully connected!') return HttpResponseRedirect(reverse('payments_settings', args=(state['site_id'],)))
def validate_sign(self, value): try: self.signed_data = signing.loads(value, max_age=PASSWORD_RESET_SIGNING_EXPIRATION) except signing.SignatureExpired: raise serializers.ValidationError('Signature expired.') except signing.BadSignature: raise serializers.ValidationError('Bad signature.') try: self.user = User.objects.get(pk=self.signed_data.get('user_id', None)) except User.DoesNotExist: raise serializers.ValidationError('User does not exist.') return value