fix: deps.py 修 await chain (3 处 .scalars())

This commit is contained in:
Mavis
2026-06-07 23:38:04 +08:00
parent 3ebf280278
commit 501713a3e8
5 changed files with 220 additions and 15 deletions

View File

@@ -28,21 +28,15 @@ async def _resolve_user(
# 1) 先试 API Token(sha256 比较)
h = hash_api_token(token)
api_row = (
await session.execute(
select(ApiToken).where(ApiToken.token_hash == h, ApiToken.revoked_at.is_(None))
)
.scalars()
.first()
result = await session.execute(
select(ApiToken).where(ApiToken.token_hash == h, ApiToken.revoked_at.is_(None))
)
api_row = result.scalars().first()
if api_row:
if api_row.expires_at and api_row.expires_at < datetime.now(timezone.utc):
raise HTTPException(status.HTTP_401_UNAUTHORIZED, "Token expired")
user = (
await session.execute(select(User).where(User.id == api_row.user_id))
.scalars()
.first()
)
result = await session.execute(select(User).where(User.id == api_row.user_id))
user = result.scalars().first()
if user and user.is_active:
api_row.last_used_at = datetime.now(timezone.utc)
await session.commit()
@@ -57,11 +51,10 @@ async def _resolve_user(
except (InvalidTokenError, KeyError, ValueError):
raise HTTPException(status.HTTP_401_UNAUTHORIZED, "Invalid token")
user = (
await session.execute(select(User).where(User.id == uid, User.is_active.is_(True)))
.scalars()
.first()
result = await session.execute(
select(User).where(User.id == uid, User.is_active.is_(True))
)
user = result.scalars().first()
if user is None:
raise HTTPException(status.HTTP_401_UNAUTHORIZED, "User not found or inactive")
return user