Files
Genarrative/server-rs/crates/module-auth
lhk229 51cb05f418
Project CI / AI game creator shell Rust crates (push) Successful in 5m56s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m36s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m37s
Project CI / Backend tests (push) Successful in 9m22s
Project CI / Frontend tests (push) Successful in 4m40s
Project CI / AI game creator shell web tests (push) Successful in 3m50s
Project CI / Repository checks (push) Successful in 6m30s
Project CI / Native shell tests (push) Successful in 8m32s
补充创作者主页与关注粉丝工程文档 (#638)
本 PR 补齐创作者主页与关注粉丝功能的产品合同和工程设计,供后续按里程碑实施;本次只修改文档。

桌面导航第四项进入自己的创作者主页,“我的”移到第五项。游戏详情可进入作者主页并关注/取消关注;自己或他人的关注、粉丝列表均公开可查看,点击用户头像或昵称可进入其主页。本人支持取消/重新关注、回关和移除粉丝,并明确两个关注方向独立。

工程设计包含关系表与 DTO、认证和事务边界、跨页状态同步、共享组件、深链及验收要求,拆分关系查询和页面交互两个里程碑。按用户要求,游戏列表沿用最多 48 项的现有限制,不增加游戏目录分页改造。

验证:
- 已合入最新 origin/master(21c79f54a);共享决策记录冲突保留双方新增内容。
- npm run check:encoding 通过。
- npm run check:doc-index 通过。
- git diff --check 与暂存差异检查通过。
- 相对 master 仅六份文档发生变化;没有业务代码或 schema 修改,未执行业务测试或部署。

Reviewed-on: #638
Co-authored-by: Linghong <ink29535@proton.me>
Co-committed-by: Linghong <ink29535@proton.me>
2026-10-05 22:05:11 +08:00
..

module-auth 鉴权模块 crate 说明

日期:2026-04-21

1. crate 职责

module-auth 是鉴权与会话模块 crate,当前与后续负责:

  1. 用户身份、会话、风控、审计相关领域模型。
  2. 手机验证码、微信登录、密码登录的模块内用例编排。
  3. 与 crates/api-server 的鉴权接口装配对接。
  4. 与 crates/spacetime-module 的身份表、会话表聚合对接。

2. 当前阶段说明

当前阶段已经冻结前七张鉴权基础表设计,并已完成:

  1. JWT claims 设计与 platform-auth 落地。
  2. refresh cookie 读取适配。
  3. module-auth 真实 crate 与首版密码登录用例落地。
  4. WP-A Auth DDD 分层收口,账号、会话、验证码、微信 state/绑定规则、命令输入、应用返回、领域错误和领域事件已归位到 domain / commands / application / errors / events。
  5. api-server / platform-auth / spacetime-module 认证边界已核查:真实短信、微信 OAuth、JWT、cookie 和密码哈希仍由平台层或 BFF 装配承接,SpacetimeDB 侧只保留快照与表适配。

当前已覆盖的鉴权用例:

  1. 密码登录
  2. refresh token 轮换
  3. me 查询
  4. 会话吊销
  5. 手机验证码登录
  6. 微信登录 state 创建/消费
  7. 微信身份解析与手机号绑定

当前文档入口

当前长期工程口径已融合到:

  1. ../../../docs/【后端架构】server-rs与SpacetimeDB数据契约-2026-05-15.md
  2. ../../../docs/【玩法创作】平台入口与玩法链路-2026-05-15.md
  3. ../../../docs/【开发运维】本地开发验证与生产运维-2026-05-15.md

旧阶段设计文档不再作为实现依据。

4. 边界约束

  1. module-auth 负责鉴权领域规则与模块级编排,不直接把供应商 SDK 或阿里云 RPC 逻辑写进主工程。
  2. 短信、微信、JWT、Cookie、密码哈希等平台适配优先通过 crates/platform-auth 承接。
  3. 身份与会话状态最终由 crates/spacetime-module 聚合,前端接口由 crates/api-server 暴露。
  4. 当前阶段允许先使用进程内适配器把用例跑通,但后续切到 SpacetimeDB 时应保持用例接口稳定。
  5. 当前 PasswordEntryService 已承接用户名校验、密码哈希校验、自动建号与重复登录复用逻辑。
  6. 当前 PasswordEntryService 已提供按 user_id 查询当前用户快照的能力,供 /api/auth/me 复用。
  7. 当前 module-auth 已承接进程内 refresh session 创建与轮换能力,供 /api/auth/refresh 复用。
  8. 当前 module-auth 已承接当前 refresh session 吊销与用户 token_version 递增能力,供 /api/auth/logout 复用。
  9. 当前手机号验证码真实 provider 由 platform-auth 注入,module-auth 只保留冷却、TTL、失败次数和账号编排,不保存验证码明文。
  10. 当前 lib.rs 仍保留进程内仓储和文件持久化支撑,但不再继续拥有命令、结果、错误、事件和纯领域值对象定义。