优化鉴权系统

This commit is contained in:
2026-07-03 21:54:19 +08:00
parent 7e65fadd83
commit 98a92b83fa
11 changed files with 539 additions and 149 deletions
+8 -4
View File
@@ -10,11 +10,13 @@ from routes import router
from service import ChatService
from storage import JsonSessionStorage
from tools import ToolRegistry
from users import UserStore
def create_app(
settings: Settings | None = None,
client: AsyncOpenAI | None = None,
user_store: UserStore | None = None,
) -> FastAPI:
resolved_settings = settings or Settings.from_env()
@@ -29,6 +31,10 @@ def create_app(
base_url=resolved_settings.base_url,
)
store = user_store or UserStore(resolved_settings.user_db_path)
await store.init()
app.state.user_store = store
app.state.chat_service = ChatService(
storage=JsonSessionStorage(resolved_settings.data_dir),
client=resolved_client,
@@ -38,9 +44,7 @@ def create_app(
max_tool_rounds=resolved_settings.max_tool_rounds,
max_tool_calls_per_turn=resolved_settings.max_tool_calls_per_turn,
)
app.state.authenticator = ApiKeyAuthenticator(
resolved_settings.api_key_whitelist
)
app.state.authenticator = ApiKeyAuthenticator(store)
yield
if client is None:
@@ -51,4 +55,4 @@ def create_app(
return app
app = create_app()
app = create_app()