Spaces:
Runtime error
Runtime error
File size: 789 Bytes
4b63522 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # utils/auth.py
from functools import wraps
from flask import request, jsonify
from .models import User # adjust import to your structure
def require_api_key(f):
@wraps(f)
def decorated_function(*args, **kwargs):
auth_header = request.headers.get('Authorization')
if not auth_header or not auth_header.startswith('Bearer '):
return jsonify({"error": "Missing or invalid Authorization header."}), 401
token = auth_header.split("Bearer ")[1].strip()
user = User.query.filter_by(api_key=token).first()
if not user:
return jsonify({"error": "Invalid or revoked API key."}), 403
request.user = user # attach user to request for downstream use
return f(*args, **kwargs)
return decorated_function
|