def test_decode_jwt(self): """ Verify decode_jwt_token decodes a token to an id. """ new_user = add_user(USERNAME, EMAIL, PASSWORD) token = new_user.encode_jwt(new_user.id) self.assertTrue(isinstance(token, bytes)) self.assertEqual(User.decode_jwt(token), new_user.id)
def decorated_function(*args, **kwargs): response = {'status': 'fail', 'message': 'Unauthorized'} auth_header = request.headers.get('Authorization') if not auth_header: response['message'] = 'Forbidden' return response, 403 token = auth_header.split(" ")[1] sub = User.decode_jwt(token) if isinstance(sub, str): response['message'] = sub return response, 401 user = User.query.filter_by(id=sub).first() if not user or not user.active: return response, 401 return func(sub, *args, **kwargs)
def decorated_function(*args, **kwargs): """ Wrapper :param args: :param kwargs: :return: flask response | function """ auth_header = request.headers.get('Authorization') if not auth_header: return error_response('Provide a valid token.'), 403 token = auth_header[7:] user_id = User.decode_jwt(token) if isinstance(user_id, str): return error_response(user_id), 401 user = User.query.filter_by(id=user_id).first() if not user or not user.active: return error_response( 'Something went wrong. Please contact us.'), 401 return f(user_id, *args, **kwargs)
def test_decode_jwt(self): user = add_user('test','*****@*****.**', 'testpass') token = user.encode_jwt(user.id) self.assertTrue(isinstance(token, bytes)) self.assertEqual(User.decode_jwt(token), user.id)