add company domain, models, route
This commit is contained in:
@@ -6,12 +6,15 @@ from jose.jwt import decode, encode
|
||||
|
||||
from api.application.protocols.date_time import DateTimeProvider
|
||||
from api.application.protocols.jwt import JwtTokenProcessor
|
||||
from api.domain.user.error import UserInvalidCredentialsError
|
||||
from api.domain.user.model import UserId
|
||||
from api.infrastructure.auth.jwt_settings import JwtSettings
|
||||
|
||||
|
||||
class JoseJwtTokenProcessor(JwtTokenProcessor):
|
||||
def __init__(self, jwt_options: JwtSettings, date_time_provider: DateTimeProvider) -> None:
|
||||
def __init__(
|
||||
self, jwt_options: JwtSettings, date_time_provider: DateTimeProvider
|
||||
) -> None:
|
||||
self.jwt_options = jwt_options
|
||||
self.date_time_provider = date_time_provider
|
||||
|
||||
@@ -29,11 +32,15 @@ class JoseJwtTokenProcessor(JwtTokenProcessor):
|
||||
|
||||
def validate_token(self, token: str) -> UserId | None:
|
||||
try:
|
||||
payload = decode(token, self.jwt_options.secret, [self.jwt_options.algorithm])
|
||||
payload = decode(
|
||||
token, self.jwt_options.secret, [self.jwt_options.algorithm]
|
||||
)
|
||||
return UserId(UUID(payload["sub"]))
|
||||
|
||||
except (JWTError, ValueError, KeyError):
|
||||
return None
|
||||
|
||||
def refresh_token(self, token: str) -> str:
|
||||
return ""
|
||||
user = self.validate_token(token)
|
||||
if user is None:
|
||||
raise UserInvalidCredentialsError("invalid token")
|
||||
return self.generate_token(user)
|
||||
|
Reference in New Issue
Block a user