# “我的”Tab 设置与账号安全 PRD 更新时间:`2026-04-16` ## 0. 目标 把“设置”入口正式定义为账号安全中心,统一承载: 1. 账号基础信息查看 2. 当前安全状态 3. 登录设备管理 4. 更换手机号 5. 最近账号操作记录 6. 退出登录与退出全部设备 这个模块直接建立在当前仓库已有的账号接口之上,是“我的”页最优先落地的正式功能。 --- ## 1. 当前现状 当前仓库已具备以下基础能力: 1. `GET /api/auth/risk-blocks` 2. `GET /api/auth/sessions` 3. `GET /api/auth/audit-logs` 4. `POST /api/auth/phone/change` 5. `POST /api/auth/logout` 6. `POST /api/auth/logout-all` 7. `POST /api/auth/sessions/:sessionId/revoke` 说明当前账号安全不是从零开始,而是缺少稳定的信息架构和最终产品定义。 --- ## 2. 产品范围 ## 2.1 本期要做 1. 设置与账号安全弹窗 2. 安全状态展示 3. 登录设备管理 4. 更换手机号 5. 操作记录查看 6. 退出当前设备 7. 退出全部设备 ## 2.2 本期不做 1. 修改密码正式入口 2. 实名认证 3. 邮箱绑定 4. 多因子认证 --- ## 3. 信息架构 设置中心建议固定为五段: 1. 账号概况 2. 当前安全状态 3. 登录设备 4. 更换手机号 5. 账号操作记录 底部保留两个危险操作按钮: 1. 退出登录 2. 退出全部设备 --- ## 4. 详细设计 ## 4.1 账号概况 展示: - 登录方式 - 手机号脱敏值 - 微信绑定状态 - 账号状态 这里只看信息,不做大编辑动作。 ## 4.2 当前安全状态 展示当前账号命中的风控保护: - 手机号保护 - 当前网络保护 每条状态可执行: - 解除保护 解除动作必须经过后端校验。 ## 4.3 登录设备 每条设备展示: - 设备类型 - 最近活跃时间 - 到期时间 - IP 脱敏信息 - 是否当前设备 非当前设备支持: - 踢下线 ## 4.4 更换手机号 流程: 1. 输入新手机号 2. 获取验证码 3. 如有需要,完成人机校验 4. 输入验证码 5. 提交修改 规则: 1. 新号码不能等于当前号码 2. 已被其他账号绑定的号码不可用 3. 风控命中时必须遵循现有保护逻辑 ## 4.5 操作记录 展示最近账号行为: - 登录 - 绑定手机号 - 更换手机号 - 退出登录 - 踢设备 - 触发图形验证码 - 风险保护 --- ## 5. 前后端职责边界 ## 5.1 前端职责 1. 展示状态 2. 收集输入 3. 呈现 loading / success / error ## 5.2 后端职责 1. 风控判断 2. 图形验证码触发 3. 会话列表返回 4. 设备撤销 5. 日志审计 6. 手机号换绑 前端不允许自己决定: - 是否需要验证码 - 是否允许解除风控 - 是否允许换绑 --- ## 6. 接口对齐 首期优先复用现有接口: 1. `GET /api/auth/me` 2. `GET /api/auth/risk-blocks` 3. `POST /api/auth/risk-blocks/:scopeType/lift` 4. `GET /api/auth/sessions` 5. `POST /api/auth/sessions/:sessionId/revoke` 6. `GET /api/auth/audit-logs` 7. `POST /api/auth/phone/change` 8. `POST /api/auth/logout` 9. `POST /api/auth/logout-all` 如需补充,只增加展示层所缺的聚合字段,不重建接口体系。 --- ## 7. 前端实现要求 1. 设置继续采用当前账号弹窗基础形态即可 2. 移动端优先底部弹层,桌面端可居中弹窗 3. 更换手机号区域默认折叠 4. 危险操作按钮与普通按钮必须明显区分 --- ## 8. 验收标准 1. 用户能看到当前账号安全信息 2. 能查看并管理登录设备 3. 能按规则更换手机号 4. 能查看最近账号操作记录 5. 退出登录和退出全部设备都能稳定生效