saas_api/actions/jwt/get_current_user.py
2025-10-08 07:50:28 -03:00

26 lines
880 B
Python

from fastapi import Depends, HTTPException, Request, status
from fastapi.security import OAuth2PasswordBearer
from actions.jwt.verify_token import \
VerifyToken # A classe que criamos anteriormente
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") # Apenas requerido pelo FastAPI
def get_current_user(token: str = Depends(oauth2_scheme)):
# Ação que válida o tokne
verify_token = VerifyToken()
# Obtem o resultado da validação
result = verify_token.execute(token)
# Verifica se a resposta é diferente de inválida
if result["status"] != "valid":
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail=result.get("message", "Token inválido ou expirado"),
headers={"WWW-Authenticate": "Bearer"},
)
# Retorna apenas os dados do token
return result["payload"]