Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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
Exemplo n.º 3
0
def auth_serializer(xom):
    import itsdangerous

    return itsdangerous.TimedSerializer(xom.config.get_replica_secret())
Exemplo n.º 4
0
 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')
Exemplo n.º 5
0
def _timed_serializer():
    # 带时间戳序列化
    s = itsdangerous.TimedSerializer('secret-key')
    s.loads(s.dumps([1, 2, 3]))
Exemplo n.º 6
0
def get_auth_serializer(config):
    return itsdangerous.TimedSerializer(config.get_replica_secret())
Exemplo n.º 7
0
 def __init__(self, model, secret):
     self.model = model
     self.serializer = itsdangerous.TimedSerializer(secret)
     self.hook = self.model.xom.config.hook.devpiserver_auth_user