File size: 1,020 Bytes
a30f2aa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
@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