import hmac from functools import wraps from flask import request, jsonify from community_qa_bot.settings import API_TOKEN def token_required(f): @wraps(f) def decorated(*args, **kwargs): auth_header = request.headers.get('Authorization') if not auth_header: return jsonify({"message": "Token is missing!"}), 401 parts = auth_header.split() if parts[0].lower() != 'bearer' or len(parts) != 2: return jsonify({"message": "Invalid token format!"}), 403 token = parts[1] if not hmac.compare_digest(token, API_TOKEN): return jsonify({"message": "Invalid Token!"}), 403 return f(*args, **kwargs) return decorated