统一认证平台已全面使用 Redis 进行 Token 的保存和失效控制。
具体实现如下:
src/app/utils/redis_token_manager.py 是专门的 Redis Token 管理模块,统一维护以下 5 类数据:
┌────────────────┬───────────────────────────────────────┬──────────────────────────────────────────┐
│ 数据类型 │ Redis Key 前缀 │ 用途 │
├────────────────┼───────────────────────────────────────┼──────────────────────────────────────────┤
│ Access Token │ auth:access:{token} │ 存储用户登录后的 access_token,TTL │
│ │ │ 控制失效 │
├────────────────┼───────────────────────────────────────┼──────────────────────────────────────────┤
│ Refresh Token │ auth:refresh:{token} │ 存储 refresh_token,TTL 控制失效 │
├────────────────┼───────────────────────────────────────┼──────────────────────────────────────────┤
│ Token 黑名单 │ auth:blacklist:{token} │ 用户登出或撤销后写入,TTL 为 token │
│ │ │ 剩余过期时间 │
├────────────────┼───────────────────────────────────────┼──────────────────────────────────────────┤
│ OAuth 授权码 │ auth:oauth_code:{code} │ 存储 OAuth2 授权码,默认 10 分钟 │
│ │ │ TTL,一次性使用 │
├────────────────┼───────────────────────────────────────┼──────────────────────────────────────────┤
│ OAuth Access │ auth:oauth_access:{client_id}:{token} │ 存储第三方应用授权的 access_token,TTL │
│ Token │ │ 控制失效 │
└────────────────┴───────────────────────────────────────┴──────────────────────────────────────────┘
虽然 src/app/models/token.py 仍定义了 t_oauth_access_tokens、t_oauth_authorization_codes、t_oauth_token_blacklist 三张表,但从服务层代码看,活跃 Token 的增删查改已经完全迁移到 Redis,MySQL 中的这几张表目前仅作为遗留结构(或可能用于历史审计),不再参与实时的认证校验逻辑。