from functools import wraps from flask import request, jsonify import jwt from app.models.user import User # ou Organization SECRET_KEY = "sua_chave_secreta" def generate_token(user): token = jwt.encode({"id": user.id}, SECRET_KEY, algorithm="HS256") return token def token_required(f): @wraps(f) def decorated(*args, **kwargs): token = None if 'Authorization' in request.headers: token = request.headers['Authorization'].split(" ")[1] # Bearer if not token: return jsonify({"message": "Token ausente!"}), 401 try: data = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) current_user = User.query.get(data["id"]) except: return jsonify({"message": "Token inválido!"}), 401 return f(current_user, *args, **kwargs) return decorated