Files
Genarrative/server-rs/crates/module-auth
kdletters 458371a73d
Project CI / Repository checks (push) Successful in 4m11s
Project CI / Frontend tests (push) Successful in 8m38s
Project CI / Backend tests (push) Successful in 10m42s
Project CI / Native shell tests (push) Successful in 32m11s
将退款 outbox 主路径迁入 SpacetimeDB (#204)
## 变更内容

- 新增 `profile_wallet_refund_outbox` 表与 enqueue/process procedure,退款主路径进入 SpacetimeDB。
- 外部生成失败事务、inline 资产失败和跨节点 worker 统一使用库内 outbox,按 ledger 幂等并在事务内完成退款与删除。
- SpacetimeDB 完全不可达时才写本机 emergency spool,恢复时重新入库;兼容旧 spool 文件并保留 attempt 追踪。
- 更新 SpacetimeDB migration、生成 bindings、架构文档、运维恢复说明和项目决策记录。

## 验证

- `cargo check -p spacetime-module -p spacetime-client -p api-server --manifest-path server-rs/Cargo.toml`
- api-server / spacetime-client / spacetime-module / module-runtime 定向测试
- `npm run check:spacetime-schema`
- `npm run check:spacetime-runtime-access`
- `npm run check:server-rs-ddd`
- `npm run check:encoding`
- `git diff --check`

Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/204
Co-authored-by: kdletters <kdletters@qq.com>
Co-committed-by: kdletters <kdletters@qq.com>
2026-08-27 22:04:50 +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 仍保留进程内仓储和文件持久化支撑,但不再继续拥有命令、结果、错误、事件和纯领域值对象定义。