Spaces:
Sleeping
Sleeping
@startuml dependencies | |
actor Client | |
participant "OAuth2PasswordBearer" as oauth2 | |
participant "Dependencies" as dependencies | |
participant "JWTError" as jwtError | |
participant "HTTPException" as httpException | |
database "TinyDBHelper" as db | |
Client -> dependencies : get_current_user(token) | |
activate dependencies | |
dependencies -> oauth2 : token | |
oauth2 --> dependencies : token | |
dependencies -> dependencies : decode_jwt(token) | |
activate dependencies | |
alt success | |
dependencies --> dependencies : payload | |
else JWTError | |
dependencies -> jwtError : raise credentials_exception | |
jwtError --> dependencies : HTTP_401_UNAUTHORIZED | |
end | |
deactivate dependencies | |
dependencies -> db : query_token(user_id, token) | |
activate db | |
alt token valid | |
db --> dependencies : true | |
else token invalid | |
db --> dependencies : false | |
dependencies -> httpException : raise expiry_exception | |
httpException --> dependencies : HTTP_401_UNAUTHORIZED | |
end | |
deactivate db | |
dependencies --> Client : user_details | |
deactivate dependencies | |
@enduml | |