Files
digital-psychology/.ai/product/feature-spec/account-auth.md
T
jackyu66gitandCursor 7ab9add5dd
ci / h5 (push) Canceled after 0s
ci / api (push) Canceled after 0s
ci / ess-docs (push) Canceled after 0s
feat(ops): ECR-007 行为分析与 ECR-008 内容运营后台
落地埋点 ingest/数据看板、首页宫格 CMS 与测评上下架;含账号引导、问答流式与免责声明去重,以及 review P1 审计同事务修复。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 02:26:16 +08:00

3.1 KiB
Raw Blame History

Feature Spec: 账号登录

Status: Active · Map: 5.x 账号 [P1+] · Phase: P1
规范:../feature-design.md
关联:profile-bootstrap.md


1. 功能定义

字段 内容
Name 账号登录(手机号+密码)
Purpose 跨设备持久用户身份;未登录不可生成/查看生日衍生结果
Business Goal 数据归属清晰;为会员与深度版付费打底
In Out
注册 / 登录 / 登出 / me 微信 OAuth、短信 OTP(后续)
设备身份绑定到已注册账号 游客可看完整报告
Bearer Session 运营 Admin 登录(独立)

2. 用户价值

  1. 换手机后仍能看到自己的档案与报告。
  2. 登录后输入生日一次生成、各页直读。
  3. N/A(登录本身免费)。

3. 用户角色

Actor 能力
Visitor 仅设备身份;可打开登录页;不可建档出结果
User(已注册) CRUD 本人档案与 TA;读已生成报告
VIP / DeepAccess 同前,权益不变

4. 用户流程

进入结果页或建档
  ↓
未登录? → /login 注册或登录
  ↓
Device 绑定到账号 User
  ↓
进入档案 / 结果页(读缓存报告)

5. 页面设计

路由 页面
/login LoginPage(注册/登录切换)
/mine 展示账号手机号尾号 + 退出

6. 页面状态规范

状态 UI
Loading 登录中
Error 密码错误 / 手机号已注册
Normal 跳转 redirect 或 /mine

7. Business Rules

ID Rule
R1 临时开放: 任意非空手机号 + 任意密码均可登录;未注册则自动建号写入 DB
R2 登录/注册统一走 OpenLogin;不校验历史密码,仍会更新 password_hash 记录本次输入
R3 登录成功后:签发 sessiondevice_identities.user_id 改绑到账号
R4 生成/查看档案与报告 API 必须已注册(users.phone 非空)且有效 session 或已绑设备账号
R5 登出作废 session;设备可再登录其他账号
R6 正式环境恢复校验前须改回本 Spec

8. 数据模型影响

  • users.phone UNIQUE · users.password_hash · users.nickname
  • user_sessions(token, user_id, expires_at)

9. API 需求

Method Path 说明
POST /api/v1/auth/register 注册
POST /api/v1/auth/login 登录
POST /api/v1/auth/logout 登出
GET /api/v1/auth/me 当前账号

10. 权限设计

能力 Visitor User
register/login
profiles / reports 写读

11. 埋点

auth_register · auth_login · auth_logout


12. 测试验收标准

Given When Then
新设备 未登录 POST portrait 401
注册成功 建档 200 且生成报告包
登录另一设备 list profiles 见同一账号数据

13. AI 开发前检查

  • lexicon:登录/注册/账号
  • 不碰 Admin Auth