feat(ops): ECR-007 行为分析与 ECR-008 内容运营后台
ci / h5 (push) Canceled after 0s
ci / api (push) Canceled after 0s
ci / ess-docs (push) Canceled after 0s

落地埋点 ingest/数据看板、首页宫格 CMS 与测评上下架;含账号引导、问答流式与免责声明去重,以及 review P1 审计同事务修复。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-07 02:26:16 +08:00
co-authored by Cursor
parent 7e9023f0a8
commit 7ab9add5dd
132 changed files with 8276 additions and 491 deletions
+135
View File
@@ -0,0 +1,135 @@
# Feature Spec: 账号登录
> Status: `Active` · Map: `5.x 账号 [P1+]` · Phase: `P1`
> 规范:[../feature-design.md](../feature-design.md)
> 关联:[profile-bootstrap.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. 用户流程
```text
进入结果页或建档
未登录? → /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 开发前检查
- [x] lexicon:登录/注册/账号
- [x] 不碰 Admin Auth