from fastapi import Depends, HTTPException, status, Request 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']