24 lines
873 B
Python
24 lines
873 B
Python
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']
|