This commit is contained in:
2026-07-17 12:51:47 +09:00
parent 38af2aab9f
commit 4ac681bd10
30 changed files with 1340 additions and 803 deletions
+26
View File
@@ -12,6 +12,8 @@ from fastapi.responses import Response
from config.config_db import get_db_pool
from config.config_system import (
DEVICE_TOKEN_COOKIE_NAME,
EMAIL_REVERIFY_DAYS,
PASSWORD_BCRYPT_ROUNDS,
SESSION_COOKIE_NAME,
SESSION_COOKIE_SECURE,
@@ -39,6 +41,30 @@ def hash_user_agent(user_agent: str) -> str:
return hashlib.sha256(normalized.encode("utf-8")).hexdigest()
def generate_device_token() -> str:
return secrets.token_urlsafe(32)
def hash_device_token(token: str) -> str:
return hashlib.sha256(token.encode("utf-8")).hexdigest()
def get_device_token_cookie(request: Request) -> str | None:
return request.cookies.get(DEVICE_TOKEN_COOKIE_NAME)
def set_device_token_cookie(response: Response, token: str) -> None:
response.set_cookie(
key=DEVICE_TOKEN_COOKIE_NAME,
value=token,
max_age=EMAIL_REVERIFY_DAYS * 24 * 60 * 60,
secure=SESSION_COOKIE_SECURE,
httponly=True,
samesite="lax",
path="/",
)
def set_session_cookie(response: Response, session_id: str) -> None:
response.set_cookie(
key=SESSION_COOKIE_NAME,