Files
Genarrative/backend-rewrite-tasklist/01_M0_M2_FOUNDATION_AND_AUTH.md

13 KiB
Raw Blame History

M0 ~ M2基础设施与鉴权任务清单

M0冻结能力与重写边界

能力冻结

仓库边界

交付物

M1Rust 工作区与 Axum 基础设施

工作区搭建

Axum 基础能力

基础工程脚本

阶段验收

  • Axum 服务可独立启动 证据:./server-rs/scripts/smoke.ps1 已通过,覆盖临时启动 api-server、等待 /healthz 就绪并验证 raw / envelope 协议。
  • /healthz 返回与当前工程兼容
  • 基础 response envelope 与 request id 行为稳定 证据:cargo test -p api-server --manifest-path server-rs/Cargo.toml 已通过,覆盖 envelope 协商与 /healthz 头部回写。
  • Rust workspace 能完整编译通过 证据:cargo check -p api-server --manifest-path server-rs/Cargo.toml 已通过。

SpacetimeDB 身份表

Axum 鉴权服务

  • 实现密码登录
  • 实现账号自动创建 / 幂等登录兼容策略
  • 实现 Bearer JWT 校验
  • 实现 refresh cookie 读取
  • 实现 refresh token 轮换
  • 实现会话吊销
  • 实现全端登出
  • 实现 me 查询

手机验证码登录

  • 接入阿里云短信发送 adapter
  • 实现发送验证码接口
  • 实现验证码校验接口
  • 实现手机号绑定
  • 实现手机号换绑
  • 实现发送频率限制
  • 实现验证码失败次数限制
  • 实现 captcha 触发逻辑
  • 实现风控封禁与解除

微信登录

  • 接入微信 OAuth adapter
  • 实现 wechat/start
  • 实现 wechat/callback
  • 实现微信身份绑定
  • 实现微信账号补绑手机号
  • 实现桌面端 / 微信内打开场景区分

OIDC 与 SpacetimeDB 身份透传

  • 设计 JWT claims
  • 确认 iss/sub/sid/provider/roles 字段
  • 让 Axum 自身可校验 JWT
  • 让 SpacetimeDB 可识别 Axum 签发的身份令牌
  • 验证 reducer / view 可读取用户身份上下文

当前接口兼容

  • 兼容 /api/auth/login-options
  • 兼容 /api/auth/entry
  • 兼容 /api/auth/me
  • 兼容 /api/auth/logout
  • 兼容 /api/auth/logout-all
  • 兼容 /api/auth/refresh
  • 兼容 /api/auth/sessions
  • 兼容 /api/auth/sessions/:sessionId/revoke
  • 兼容 /api/auth/audit-logs
  • 兼容 /api/auth/risk-blocks
  • 兼容 /api/auth/risk-blocks/:scopeType/lift
  • 兼容 /api/auth/phone/send-code
  • 兼容 /api/auth/phone/login
  • 兼容 /api/auth/phone/change
  • 兼容 /api/auth/wechat/start
  • 兼容 /api/auth/wechat/callback
  • 兼容 /api/auth/wechat/bind-phone

阶段验收

  • 密码登录主链可用
  • refresh cookie 主链可用
  • 手机验证码主链可用
  • 微信登录主链可用
  • 所有旧鉴权接口可通过 contract 回归