示例#1
0
def refresh(self, request):
    try:
        email = verify_refresh_request(request)
    except ExpiredSignatureError:

        @request.after
        def expired_nonce_or_token(response):
            response.status_code = 403

        return {"validationError": "Your session has expired"}
    except InvalidTokenError:

        @request.after
        def invalid_token(response):
            response.status_code = 403

        return {"validationError": "Could not refresh your token"}
    else:
        user = User.get(email=email)

        @request.after
        def remember(response):
            # Checks if user is member of Admin group.
            is_admin = Group.get(name="Admin") in user.groups
            identity = morepath.Identity(
                email,
                nickname=user.nickname,
                isAdmin=is_admin,
                uid=request.class_link(User, variables={"id": user.id}),
            )
            request.app.remember_identity(response, request, identity)
示例#2
0
    def refresh(self, request):
        userid = verify_refresh_request(request)

        @request.after
        def remember(response):
            identity = Identity(userid)
            request.app.remember_identity(response, request, identity)

        return {'userid': userid}
示例#3
0
    def refresh(self, request):
        userid = verify_refresh_request(request)
        updated_extra_claims = {
            'fullname': 'Harry Potter',
            'email': '*****@*****.**',
            'role': 'father'
        }

        @request.after
        def remember(response):
            identity = Identity(userid, **updated_extra_claims)
            request.app.remember_identity(response, request, identity)

        return {
            'userid': 'user',
            'fullname': 'Harry Potter',
            'email': '*****@*****.**',
            'role': 'father'
        }
示例#4
0
 def refresh(self, request):
     verify_refresh_request(request)