Files
story/docs/customer-signup-fix-20260916.md
T
Codex Local bf1233d5df
ci / verify (push) Canceled after 0s
feat: expand companion platform, device controls, and memoir workflows
Add customer and operator login, BLE provisioning, device fleet controls, call memory, memoir generation, and refreshed family and maintenance portals. Include API contracts, migrations, firmware sources, tests, assets, and deployment documentation.
2026-10-08 10:06:44 +08:00

32 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 新手机号授权自动建号修复
## 原因与修复
线上 API 的 `ONBOARDING_SELF_SIGNUP_TENANT_IDS` 为空。微信手机号授权成功后,已有自动建号代码因此拒绝创建新账号,并返回 `SMS_ACCOUNT_NOT_REGISTERED`。这不是需要先绑定设备的业务限制。
2026-09-16 已在 82.157.201.114 当前部署的 `deploy/server/.env` 明确配置客户组织 public_id:`10000000-0000-0000-0000-000000000010`。只重建 API 容器并刷新网关解析,未更换后端镜像,未修改数据库结构,未发布小程序。
## 预期流程
1. 微信首次登录:请求授权手机号。
2. 后端向微信校验授权结果,按已验证手机号查找账号。
3. 未注册的手机号:在部署配置指定的客户组织创建普通客户账号,关联微信并返回登录凭据。
4. 已注册的手机号:复用原账号,不重复创建。
5. 新账号没有家庭、老人和设备绑定,由用户登录后自行创建。
只输入手机号或密码不能绕过手机号验证自动建号;管理员登录不开放自动注册。
## 验证
- 线上 HTTPS `/api/v1/web/login/session` 返回 HTTP 200,`signup_enabled=true`。
- 12 项微信与短信登录测试通过(另含两个子用例),包括新增 `TestWeChatNewPhoneCreatesCustomerWithoutFamilyOrDevice`。
- 新增用例覆盖:授权前不建号、首次授权创建普通客户账号、没有家庭/设备也能注册、重复微信登录复用账号。
- 数据库测试使用独立临时数据库(仅复制线上结构,无线上用户数据)和独立 Redis;执行后均已移除。
- 测试使用模拟微信/短信提供方,没有给真实手机号发短信,没有预先注册用户的测试账号。真机微信授权需用户重新尝试。
## 部署注意
后续迁移或重新部署须保留这一配置。不能仅检查已有账号能登录,应同时检查 `signup_enabled`,并执行全新手机号授权建号回归。
当前部署环境文件留有修复前的受限备份 `.env.before-customer-signup-20260916`,仅用于定向回滚,勿覆盖后续新增配置。