fix auth lifetime

This commit is contained in:
2024-04-07 21:31:15 +00:00
parent f8f5bf80c1
commit d55e8d1df3
13 changed files with 212 additions and 42 deletions

View File

@@ -1,9 +1,12 @@
import os
from functools import lru_cache
from typing import Annotated
import yaml # type: ignore
from fastapi import Depends
from api.infrastructure.auth.jwt_settings import JwtSettings
from api.infrastructure.dependencies.stub import Stub
from api.infrastructure.persistence.db_setings import DBSettings
from api.infrastructure.settings import Settings
@@ -14,23 +17,36 @@ def yaml_loader(file: str) -> dict[str, dict[str, str]]:
return yaml_data
@lru_cache
def app_settings() -> Settings:
def get_db_settings() -> DBSettings:
config_data = yaml_loader(
file=os.getenv("CONFIG_PATH", "./config/api_config.yml"),
)
return Settings(
db=DBSettings(
pg_user=config_data["db"]["user"],
pg_pass=config_data["db"]["password"],
pg_host=config_data["db"]["host"],
pg_port=int(config_data["db"]["port"]),
pg_db=config_data["db"]["database"],
),
jwt=JwtSettings(
secret=config_data["jwt"]["secret_key"],
expires_in=int(config_data["jwt"]["expires_in"]),
algorithm=config_data["jwt"]["algorithm"],
),
return DBSettings(
pg_user=config_data["db"]["user"],
pg_pass=config_data["db"]["password"],
pg_host=config_data["db"]["host"],
pg_port=int(config_data["db"]["port"]),
pg_db=config_data["db"]["database"],
)
def get_jwt_settings() -> JwtSettings:
config_data = yaml_loader(
file=os.getenv("CONFIG_PATH", "./config/api_config.yml"),
)
return JwtSettings(
secret=config_data["jwt"]["secret_key"],
expires_in=int(config_data["jwt"]["expires_in"]),
algorithm=config_data["jwt"]["algorithm"],
)
@lru_cache
def app_settings(
db_conf: Annotated[DBSettings, Depends(Stub(DBSettings))],
jwt_conf: Annotated[JwtSettings, Depends(Stub(JwtSettings))],
) -> Settings:
return Settings(
db=db_conf,
jwt=jwt_conf,
)

View File

@@ -26,9 +26,7 @@ def get_jwt_token_processor(
settings: Annotated[Settings, Depends(Stub(Settings))],
date_time_provider: Annotated[DateTimeProvider, Depends(Stub(DateTimeProvider))],
) -> JwtTokenProcessor:
return JoseJwtTokenProcessor(
jwt_options=settings.jwt, date_time_provider=date_time_provider
)
return JoseJwtTokenProcessor(jwt_options=settings.jwt, date_time_provider=date_time_provider)
def get_user_login(