def create(request, *args, **kwargs): serializer = itsdangerous.TimedSerializer( settings.ITSDANGEROUS_KEY, serializer=itsdangerous.URLSafeSerializer(settings.ITSDANGEROUS_KEY), ) try: email = serializer.loads(kwargs["token"], max_age=settings.ITSDANGEROUS_EXPIRE_PERIOD, salt="signup") Registration.objects.filter(email=email).update(pending=False) except itsdangerous.SignatureExpired: msg = "Link has expired. Please contact department administrator for new link" return http.HttpResponse(msg) except itsdangerous.BadSignature: return http.HttpResponseNotFound("Page Not Found") form = SignupForm(prefix="user_form") if request.method == "POST": form = SignupForm(request.POST, prefix="user_form") if form.is_valid(): form.save() messages.success( request, "Account created successfully. Please login to proceed", extra_tags="alert", ) return http.HttpResponseRedirect(reverse("login")) context = {"user_form": form, "title": "Registration"} return render(request, "staff/signup.html", context)
def check_login_token(token_hash): try: dc_token = base64.b64decode(token_hash) s = itsdangerous.TimedSerializer(current_app.secret_key) return s.loads(dc_token, max_age=cfg.get('user_timeout', 7200)) except (itsdangerous.SignatureExpired, itsdangerous.BadSignature): return None except binascii.Error as e: current_app.logger.warning("binascii.Error: '%s' from token hash '%s'", str(e), token_hash) return None
def auth_serializer(xom): import itsdangerous return itsdangerous.TimedSerializer(xom.config.get_replica_secret())
def get_auth_token(self): """Used by flask_login to set cookie/login token.""" s = itsdangerous.TimedSerializer(current_app.secret_key) serialised_token = s.dumps(self.username) return base64.b64encode(serialised_token.encode()).decode('utf-8')
def _timed_serializer(): # 带时间戳序列化 s = itsdangerous.TimedSerializer('secret-key') s.loads(s.dumps([1, 2, 3]))
def get_auth_serializer(config): return itsdangerous.TimedSerializer(config.get_replica_secret())
def __init__(self, model, secret): self.model = model self.serializer = itsdangerous.TimedSerializer(secret) self.hook = self.model.xom.config.hook.devpiserver_auth_user