cleanup
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
from flask import request, jsonify, current_app
|
||||
from functools import wraps
|
||||
import jwt
|
||||
|
||||
def decode_jwt_token(token):
|
||||
try:
|
||||
payload = jwt.decode(token, current_app.config["JWT_SECRET_KEY"], algorithms=["HS256"])
|
||||
return payload
|
||||
except jwt.ExpiredSignatureError:
|
||||
return {"error": "Token has expired."}
|
||||
except jwt.InvalidTokenError:
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"Unexpected error decoding JWT: {str(e)}")
|
||||
return None
|
||||
|
||||
def jwt_required(f):
|
||||
@wraps(f)
|
||||
def decorated_function(*args, **kwargs):
|
||||
auth_header = request.headers.get('Authorization', '').strip()
|
||||
|
||||
if not auth_header.startswith('Bearer '):
|
||||
return jsonify({"error": "Token is missing or invalid!"}), 401
|
||||
|
||||
token = auth_header.split(" ", 1)[1].strip()
|
||||
decoded_token = decode_jwt_token(token)
|
||||
|
||||
if decoded_token is None:
|
||||
return jsonify({"error": "Invalid token!"}), 401
|
||||
elif "error" in decoded_token:
|
||||
return jsonify(decoded_token), 401
|
||||
|
||||
request.decoded_token = decoded_token
|
||||
|
||||
return f(*args, **kwargs)
|
||||
|
||||
return decorated_function
|
||||
Reference in New Issue
Block a user