🐛 fix(auth.py): change refresh token expiration time from 70 minutes to 12 hours for better security and usability
✨ feat(auth.py): add logging statements to provide more visibility into secret key generation and saving process 🐛 fix(auth.py): handle IOError when reading or writing secret key to prevent unexpected failures
This commit is contained in:
parent
536e9d8f47
commit
d05e085c4c
1 changed files with 22 additions and 19 deletions
|
|
@ -23,7 +23,7 @@ class AuthSettings(BaseSettings):
|
|||
)
|
||||
ALGORITHM: str = "HS256"
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES: int = 60
|
||||
REFRESH_TOKEN_EXPIRE_MINUTES: int = 70
|
||||
REFRESH_TOKEN_EXPIRE_MINUTES: int = 60 * 12
|
||||
|
||||
# API Key to execute /process endpoint
|
||||
API_KEY_SECRET_KEY: Optional[
|
||||
|
|
@ -70,30 +70,33 @@ class AuthSettings(BaseSettings):
|
|||
|
||||
@validator("SECRET_KEY", pre=True)
|
||||
def get_secret_key(cls, value, values):
|
||||
config_dir = values.get("CONFIG_DIR")
|
||||
config_dir: Path = values.get("CONFIG_DIR")
|
||||
|
||||
if not config_dir:
|
||||
logger.debug("No CONFIG_DIR provided, not saving secret key")
|
||||
logger.warn("No CONFIG_DIR provided; not saving secret key.")
|
||||
return value or secrets.token_urlsafe(32)
|
||||
|
||||
secret_key_path = Path(config_dir) / "secret_key"
|
||||
secret_key_path = config_dir / "secret_key"
|
||||
|
||||
if value:
|
||||
logger.debug("Secret key provided")
|
||||
write_secret_to_file(secret_key_path, value)
|
||||
else:
|
||||
logger.debug("No secret key provided, generating a random one")
|
||||
|
||||
if secret_key_path.exists():
|
||||
value = read_secret_from_file(secret_key_path)
|
||||
logger.debug("Loaded secret key")
|
||||
if not value:
|
||||
try:
|
||||
if value:
|
||||
logger.info("Secret key provided.")
|
||||
write_secret_to_file(secret_key_path, value)
|
||||
else:
|
||||
logger.info("No secret key provided, generating a random one.")
|
||||
if secret_key_path.exists():
|
||||
value = read_secret_from_file(secret_key_path)
|
||||
logger.info("Loaded secret key.")
|
||||
if not value:
|
||||
value = secrets.token_urlsafe(32)
|
||||
write_secret_to_file(secret_key_path, value)
|
||||
logger.info("Saved secret key.")
|
||||
else:
|
||||
value = secrets.token_urlsafe(32)
|
||||
write_secret_to_file(secret_key_path, value)
|
||||
logger.debug("Saved secret key")
|
||||
else:
|
||||
value = secrets.token_urlsafe(32)
|
||||
write_secret_to_file(secret_key_path, value)
|
||||
logger.debug("Saved secret key")
|
||||
logger.info("Saved secret key.")
|
||||
except IOError:
|
||||
logger.error("Failed to read or write secret key.")
|
||||
raise IOError("Failed to read or write secret key.")
|
||||
|
||||
return value
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue