4.9 KiB
4.9 KiB
module-auth 鉴权模块 crate 说明
日期:2026-04-21
1. crate 职责
module-auth 是鉴权与会话模块 crate,当前与后续负责:
- 用户身份、会话、风控、审计相关领域模型。
- 手机验证码、微信登录、密码登录的模块内用例编排。
- 与
crates/api-server的鉴权接口装配对接。 - 与
crates/spacetime-module的身份表、会话表聚合对接。
2. 当前阶段说明
当前阶段已经冻结前七张鉴权基础表设计,并已完成:
- JWT claims 设计与
platform-auth落地。 - refresh cookie 读取适配。
module-auth真实 crate 与首版密码登录用例落地。WP-A AuthDDD 分层收口,账号、会话、验证码、微信 state/绑定规则、命令输入、应用返回、领域错误和领域事件已归位到domain / commands / application / errors / events。api-server / platform-auth / spacetime-module认证边界已核查:真实短信、微信 OAuth、JWT、cookie 和密码哈希仍由平台层或 BFF 装配承接,SpacetimeDB 侧只保留快照与表适配。
当前已覆盖的鉴权用例:
- 密码登录
- refresh token 轮换
me查询- 会话吊销
- 手机验证码登录
- 微信登录 state 创建/消费
- 微信身份解析与手机号绑定
3. 当前已冻结文档
- ../../../docs/technical/SPACETIMEDB_AUTH_USER_ACCOUNT_TABLE_DESIGN_2026-04-21.md
- ../../../docs/technical/SPACETIMEDB_AUTH_IDENTITY_TABLE_DESIGN_2026-04-21.md
- ../../../docs/technical/SPACETIMEDB_REFRESH_SESSION_TABLE_DESIGN_2026-04-21.md
- ../../../docs/technical/SPACETIMEDB_AUTH_AUDIT_LOG_TABLE_DESIGN_2026-04-21.md
- ../../../docs/technical/SPACETIMEDB_AUTH_RISK_BLOCK_TABLE_DESIGN_2026-04-21.md
- ../../../docs/technical/SPACETIMEDB_SMS_AUTH_EVENT_TABLE_DESIGN_2026-04-21.md
- ../../../docs/technical/SPACETIMEDB_WECHAT_AUTH_STATE_TABLE_DESIGN_2026-04-21.md
- ../../../docs/technical/OIDC_JWT_CLAIMS_DESIGN_2026-04-21.md
- ../../../docs/technical/PLATFORM_AUTH_JWT_ADAPTER_DESIGN_2026-04-21.md
- ../../../docs/technical/PLATFORM_AUTH_REFRESH_COOKIE_ADAPTER_DESIGN_2026-04-21.md
- ../../../docs/technical/PASSWORD_ENTRY_FLOW_DESIGN_2026-04-21.md
- ../../../docs/technical/AUTH_REFRESH_ROTATION_DESIGN_2026-04-21.md
- ../../../docs/technical/AUTH_LOGOUT_CURRENT_SESSION_DESIGN_2026-04-21.md
- ../../../docs/technical/PHONE_AUTH_AXUM_REAL_SMS_PROVIDER_DESIGN_2026-04-22.md
- ../../../docs/technical/SERVER_RS_DDD_WP_A_AUTH_DOMAIN_VALUE_OBJECT_REFACTOR_2026-04-29.md
4. 边界约束
module-auth负责鉴权领域规则与模块级编排,不直接把供应商 SDK 或阿里云 RPC 逻辑写进主工程。- 短信、微信、JWT、Cookie、密码哈希等平台适配优先通过
crates/platform-auth承接。 - 身份与会话状态最终由
crates/spacetime-module聚合,前端接口由crates/api-server暴露。 - 当前阶段允许先使用进程内适配器把用例跑通,但后续切到
SpacetimeDB时应保持用例接口稳定。 - 当前
PasswordEntryService已承接用户名校验、密码哈希校验、自动建号与重复登录复用逻辑。 - 当前
PasswordEntryService已提供按user_id查询当前用户快照的能力,供/api/auth/me复用。 - 当前
module-auth已承接进程内 refresh session 创建与轮换能力,供/api/auth/refresh复用。 - 当前
module-auth已承接当前 refresh session 吊销与用户token_version递增能力,供/api/auth/logout复用。 - 当前手机号验证码真实 provider 由
platform-auth注入,module-auth只保留冷却、TTL、失败次数和账号编排,不保存验证码明文。 - 当前
lib.rs仍保留进程内仓储和文件持久化支撑,但不再继续拥有命令、结果、错误、事件和纯领域值对象定义。