def decorator(*args, **kwargs): token = _jwt.request_callback() try: payload = _jwt.jwt_decode_callback(token) except jwt.exceptions.DecodeError: pass else: _request_ctx_stack.top.current_identity = _jwt.identity_callback(payload) return fn(*args, **kwargs)
def push_to_ctx(): from flask_jwt import _jwt from flask import _request_ctx_stack import jwt token = _jwt.request_callback() try: payload = _jwt.jwt_decode_callback(token) except jwt.exceptions.DecodeError: pass else: _request_ctx_stack.top.current_identity = _jwt.identity_callback( payload)
def wrapped(*args, **kwargs): token = request.args.get('token') if token is None: disconnect() try: print(token) payload = _jwt.jwt_decode_callback(token) except jwt.InvalidTokenError as e: disconnect() _request_ctx_stack.top.current_identity = identity = _jwt.identity_callback(payload) if identity is None: disconnect() else: return f(*args, **kwargs)
def decorator(*args, **kwargs): token = _jwt.request_callback() if token is None: raise JWTError('Authorization Required', 'Request does not contain an access token', headers={'WWW-Authenticate': 'JWT realm="%s"' % realm}) try: payload = _jwt.jwt_decode_callback(token) except jwt.InvalidTokenError as e: raise JWTError('Invalid token', str(e)) identity = _jwt.identity_callback(payload) if user_type == 'student' and isinstance(identity, Student): return fn(*args, **kwargs) elif user_type == 'teacher' and isinstance(identity, Teacher): return fn(*args, **kwargs) # NOTE - By default JWTError throws 401. We needed 404. Hence status_code=404 raise JWTError('Unauthorized', 'You are unauthorized to request the api or access the resource', status_code=404)