4
4
from copy import copy
5
5
from typing import Optional
6
6
from ovos_config import Configuration
7
+
8
+ from neon_data_models .models .api .jwt import HanaToken
7
9
from neon_users_service .databases import UserDatabase
8
10
from neon_users_service .exceptions import (ConfigurationError ,
9
11
AuthenticationError ,
@@ -58,11 +60,11 @@ def create_user(self, user: User) -> User:
58
60
return self .database .create_user (user )
59
61
60
62
def _read_user (self , user_spec : str , password : Optional [str ] = None ,
61
- auth_token : Optional [str ] = None ) -> User :
63
+ auth_token : Optional [HanaToken ] = None ) -> User :
62
64
user = self .database .read_user (user_spec )
63
65
if password and self ._ensure_hashed (password ) == user .password_hash :
64
66
return user
65
- elif auth_token and any ((tok .access_token == auth_token
67
+ elif auth_token and any ((tok .jti == f" { auth_token . jti } .refresh"
66
68
for tok in user .tokens )):
67
69
return user
68
70
else :
@@ -82,7 +84,7 @@ def read_unauthenticated_user(self, user_spec: str) -> User:
82
84
83
85
def read_authenticated_user (self , username : str ,
84
86
password : Optional [str ] = None ,
85
- auth_token : Optional [str ] = None ) -> User :
87
+ auth_token : Optional [HanaToken ] = None ) -> User :
86
88
"""
87
89
Helper to get a user from the database, only if the requested username
88
90
and password match a database entry.
0 commit comments