built ability to create a character

This commit is contained in:
2025-11-03 21:42:11 -06:00
parent 875acbbe65
commit efdf3570c5
13 changed files with 44 additions and 186 deletions

View File

@@ -85,7 +85,7 @@ def configure_logging(settings=None) -> None:
return
if settings is None:
from app.core.utils.settings import get_settings # lazy import
from app.utils.settings import get_settings # lazy import
settings = get_settings()
env = settings.env.value

View File

@@ -1,27 +0,0 @@
import time
from flask import session
from ..services.appwrite_client import AppwriteAccountClient
def ensure_fresh_appwrite_jwt(skew_seconds: int = 120) -> str:
"""
Returns a valid Appwrite JWT, refreshing it if it's missing or expiring soon.
Relies on the saved Appwrite session cookie in Flask's session.
"""
jwt_info = session.get("appwrite_jwt")
now = int(time.time())
if jwt_info and isinstance(jwt_info, dict):
exp = int(jwt_info.get("expire", 0))
# If token still safely valid, reuse it
if exp - now > skew_seconds and "jwt" in jwt_info:
return jwt_info["jwt"]
# Need to mint a new JWT using the user's Appwrite session cookie
cookies = session.get("appwrite_cookies")
if not cookies:
raise RuntimeError("Missing Appwrite session; user must sign in again.")
aw = AppwriteAccountClient(cookies=cookies)
new_jwt = aw.create_jwt() # -> {"jwt": "...", "expire": <unix>}
session["appwrite_jwt"] = new_jwt
return new_jwt["jwt"]