25 lines
865 B
Python
25 lines
865 B
Python
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"]
|