This commit is contained in:
lz_db
2026-10-25 20:30:33 +08:00
parent 1d9cd1f9c7
commit 074229f417
14 changed files with 222 additions and 19 deletions
+5
View File
@@ -362,6 +362,11 @@ async def login(db: AsyncSession, redis: aioredis.Redis, req, ip: str) -> dict:
user.last_login_ip = ip
await db.commit()
# 单点登录:新设备登录即踢掉其它设备。
# 递增令牌纪元使旧 access token 立即失效(deps 每次请求校验 ep),
# 清空 refresh 白名单使旧 refresh 无法刷新;随后签发的新 Token 带新纪元。
await redis.incr(f"auth:epoch:{user.id}")
await redis.delete(f"auth:refresh:{user.id}")
tokens = await _issue_tokens(redis, user.id)
return {"user_id": user.id, **tokens, "user": await _user_brief(db, user)}