refactor(auth): remove legacy RESTful user routes and migrate authentication to GraphQL context

- Rename get_current_user to get_current_user_id in auth/deps.py to clarify intent
- Remove legacy /me, /logout routes, and placeholder function from auth/__init__.py
- Remove dependency_overrides from app/main.py
- Update CustomContext to resolve and cache full User objects via db query
This commit is contained in:
2026-05-20 02:52:54 +08:00
parent d54aeaa61a
commit 9dfe000f2d
6 changed files with 34 additions and 95 deletions
+13 -4
View File
@@ -1,9 +1,9 @@
from app.models.user import User
from auth.deps import get_current_user
from auth.deps import get_current_user_id
from fastapi import Request
from strawberry.fastapi import BaseContext
from strawberry.dataloader import DataLoader
from typing import List
from typing import List, Optional
from collections import defaultdict
from app.db import SessionLocal
from app.models import WorkspaceMember
@@ -31,13 +31,22 @@ class CustomContext(BaseContext):
super().__init__(request)
self.db = SessionLocal()
self.request = request
self._current_user: Optional[User] = None
self.members_loader = DataLoader(load_fn=load_members_by_workspace_ids)
async def get_current_user(self) -> User | None:
# 复用现有的 auth 逻辑
"""在 Context 级别负责把 user_id 变成真正的数据库 User 对象"""
if self._current_user is not None:
return self._current_user
try:
return await get_current_user(self.request)
# 借用 auth 包的纯工具解出 ID
user_id = get_current_user_id(self.request)
# 在 Context 的数据库连接中查询完整用户
user = self.db.query(User).filter(User.id == user_id).first()
self._current_user = user
return user
except Exception:
return None