限制手机号注册流程使用号码复用
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
# 手机号注册禁用号码复用开发方案
|
||||
|
||||
## 1. 需求结论
|
||||
|
||||
手机号注册流程中,手机号是账号主身份,不应进入普通号码复用、白嫖复用、自动白嫖复用、优先号码等复用链路。邮箱注册流程中的手机接码才是附加验证资源,才允许复用。
|
||||
|
||||
本次开发目标:
|
||||
|
||||
1. 手机号注册模式下,复用相关功能自动显示为关闭并禁止修改。
|
||||
2. 切回邮箱注册模式后,恢复用户原本保存的复用偏好。
|
||||
3. 后台运行时必须有硬约束,不能只依赖 UI 禁用。
|
||||
4. 手动白嫖保存入口必须阻断手机号注册身份,避免绕过 UI。
|
||||
5. 测试覆盖普通复用、白嫖复用、优先号码、设置保存和消息入口。
|
||||
|
||||
## 2. 设计边界
|
||||
|
||||
### 2.1 符合要求的部分
|
||||
|
||||
- 手机号注册时禁用复用符合身份模型:手机号是账号标识,不是后续 add-phone 验证资源。
|
||||
- 邮箱注册时恢复复用符合用户预期:用户原本的复用配置不应因为临时切到手机号注册而丢失。
|
||||
- 后台硬约束是必要的:自动运行、导入配置、消息入口都可能绕过侧边栏状态。
|
||||
|
||||
### 2.2 需要避免的缺陷
|
||||
|
||||
1. 只改 UI 不改运行时:仍会被自动运行或消息入口绕过。
|
||||
2. 切到手机号注册时把配置永久写成 false:切回邮箱注册后用户偏好丢失。
|
||||
3. 只禁用普通复用,不禁用白嫖复用:白嫖复用优先级更高,仍会污染手机号身份。
|
||||
4. 只禁用白嫖开关,不禁用手动记录按钮:用户仍可把手机号注册订单写成白嫖资源。
|
||||
5. 忽略优先号码:优先号码本质上也是复用,应在手机号注册模式下不参与。
|
||||
6. 清空复用池:这会破坏邮箱注册模式下的历史资源;本次只做有效禁用,不主动清空。
|
||||
|
||||
## 3. 开发清单
|
||||
|
||||
### 阶段 1:后台运行时复用边界硬约束
|
||||
|
||||
目标:
|
||||
|
||||
- 新增统一判断:当前状态是否为手机号注册身份流程。
|
||||
- 手机号注册身份下跳过普通复用和优先号码。
|
||||
- 手机号注册成功后不写入普通复用池。
|
||||
- 手机号注册身份下不触发白嫖复用保存、白嫖终态跳过、自动白嫖 handoff。
|
||||
|
||||
自检项:
|
||||
|
||||
- `prepareSignupPhoneActivation` 不会复用旧号码。
|
||||
- `finalizeSignupPhoneActivationAfterSuccess` 仍会正常完成接码订单,但不保存为复用资源。
|
||||
- Step9 边界场景即使状态误带手机号身份,也不会走普通/白嫖复用。
|
||||
- 不清空原有邮箱模式复用资源。
|
||||
- 无拼写错误、无乱码、无无关重构。
|
||||
|
||||
### 阶段 2:侧边栏 UI 有效禁用与偏好保留
|
||||
|
||||
目标:
|
||||
|
||||
- 手机号注册模式下普通号码复用、白嫖复用、自动白嫖复用显示关闭并禁用。
|
||||
- 优先号码和白嫖号码运行态入口在手机号注册模式下不可修改。
|
||||
- 切回邮箱注册时恢复 `latestState` 中保存的原始偏好。
|
||||
- 保存设置时不把手机号模式下的 UI 强制 false 写回持久配置。
|
||||
|
||||
自检项:
|
||||
|
||||
- 手机号注册切换时控件不会闪回可用。
|
||||
- 邮箱注册切回后复用偏好恢复。
|
||||
- 自动运行锁和手机号注册锁不互相覆盖。
|
||||
- 变更不影响 provider 切换、价格区间、接码展开折叠。
|
||||
- 无 UI 文案乱码。
|
||||
|
||||
### 阶段 3:消息入口与手动白嫖保存拦截
|
||||
|
||||
目标:
|
||||
|
||||
- `SET_FREE_REUSABLE_PHONE` 在手机号注册身份下返回明确错误。
|
||||
- `SAVE_SETTING` 在手机号注册有效模式下忽略复用开关改动,保留历史偏好。
|
||||
- 后台约束与 UI 约束一致。
|
||||
|
||||
自检项:
|
||||
|
||||
- 侧边栏按钮和外部消息都无法在手机号注册身份下保存白嫖号。
|
||||
- 邮箱注册模式下原行为保持。
|
||||
- 不影响清除白嫖号码能力。
|
||||
- 不影响导入旧配置的兼容读取。
|
||||
|
||||
### 阶段 4:测试覆盖
|
||||
|
||||
目标:
|
||||
|
||||
- 补充 phone verification flow 测试。
|
||||
- 补充 sidepanel 设置保存测试。
|
||||
- 补充 message router 保存拦截测试。
|
||||
|
||||
自检项:
|
||||
|
||||
- 手机号注册不读取普通复用。
|
||||
- 手机号注册不读取白嫖复用。
|
||||
- 手机号注册不自动保存白嫖资源。
|
||||
- 手机号注册保存设置不会覆盖邮箱模式复用偏好。
|
||||
- 邮箱注册复用路径不回归。
|
||||
|
||||
### 阶段 5:全面审查与提交
|
||||
|
||||
目标:
|
||||
|
||||
- 运行相关测试。
|
||||
- `git diff` 审查每个改动点。
|
||||
- 检查中文文档和 UI 字符串没有乱码。
|
||||
- 检查没有误改无关文件。
|
||||
- 使用中文提交信息提交代码。
|
||||
|
||||
自检项:
|
||||
|
||||
- 相关测试通过。
|
||||
- 没有遗留调试代码。
|
||||
- 没有破坏当前工作区的其他改动。
|
||||
- 提交内容只包含本需求相关文件。
|
||||
|
||||
## 4. 完成标准
|
||||
|
||||
本需求只有同时满足以下条件才算完成:
|
||||
|
||||
1. 手机号注册模式下所有复用链路运行时失效。
|
||||
2. 手机号注册模式下侧边栏无法修改复用相关控件。
|
||||
3. 切回邮箱注册后原复用偏好恢复。
|
||||
4. 白嫖复用不能通过手动消息入口绕过。
|
||||
5. 单元测试覆盖新增边界。
|
||||
6. 全面审查无设计缺陷、边界遗漏、乱码和无关改动。
|
||||
7. 最终使用中文提交信息完成 commit。
|
||||
Reference in New Issue
Block a user