This commit is contained in:
2026-04-15 01:05:54 +02:00
parent db0324c43d
commit bc0c08342d
84 changed files with 28780 additions and 0 deletions

View File

@@ -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