from fastapi import Depends, HTTPException, 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"]