这一期,先看重点
- 邮箱注册先开放,再接入归属验证,三个阶段分别记录。
- 六位验证码、十分钟有效期、重发冷却与失败提示。
- 注册与重置密码分开验证,旧用户名账号继续兼容。
邮箱注册不是在登录页多加一个按钮就结束了。它涉及邮箱格式、归属验证、重复账号、协议、会话恢复、语言和邮件发送失败,也要给忘记密码的用户留一条可完成的路径。11 月首周按阶段补齐了这些工作。
第一阶段:把邮箱注册入口开放出来
11 月 3 日的登录页重设计已实现邮箱、密码、确认密码和用户协议;11 月 4 日又明确开放注册入口。新用户以邮箱注册家长账号,已有管理员创建的用户名账号继续登录,两类入口共同使用同一套页面。
邮箱会去掉首尾空格并统一大小写;邮箱登录大小写不敏感。注册时检查重复邮箱及密码条件,要求两次输入一致。新账号固定为普通家长权限,不能通过注册表单自行选择更高权限。协议接受只属于注册流程。
这个阶段不能被描述成“已经验证邮箱”。当时只是完成注册入口与账号创建;验证归属是随后接入的独立步骤。
第二阶段:先证明邮箱归属,再创建账号
11 月 4 日晚完成 Resend 邮箱验证的本地实现,11 月 5 日完成网页部署。注册改为:输入邮箱,获取六位验证码,填写密码与确认密码,同意协议,再提交注册。
发送验证码成功并不直接创建账号,也不会提前把用户登录。只有验证码验证通过后才完成账号创建、记下已验证状态和协议接受,再进入后续使用流程。
验证码背后的具体处理
| 项目 | 实现行为 |
|---|---|
| 有效期 | 六位数字验证码,十分钟内有效。 |
| 重发间隔 | 获取后至少等待六十秒再发送,界面显示等待状态。 |
| 重新发送 | 新验证码替换旧验证码,旧码不能继续使用。 |
| 错误输入 | 限制同一验证码的错误尝试次数,错误时给出可理解的反馈。 |
| 发送失败 | 显示发送失败,不能使用未成功发出的验证码完成注册。 |
| 语言 | 邮件与页面跟随简体中文、繁体中文或英文设置。 |
| 保存与重启 | 验证状态和必要的频率限制持久保存,服务重启不会让未完成流程绕过校验。 |
| 重复邮箱 | 明确处理已经存在的邮箱,避免创建重复账号。 |
| 密码 | 至少八个字符,检查确认密码和底层加密所允许的长度。 |
这部分还补了按邮箱与请求来源的发送频率限制。验证码按安全摘要保存,不在页面、接口响应或日志中返回明文。博客只记录行为,不公开实际发信凭据或账号资料。
旧账号和新用户分别怎样进入
已有用户名账号沿用原登录流程;已有邮箱账号不会因验证功能上线而被要求重新注册。新注册邮箱账号完成验证后,可继续进入家长使用流程。
如果新家长尚未建立儿童档案,会进入两步建档引导:先了解档案用途,再填昵称和年龄,也可以选择稍后。拥有已有档案的账号则恢复有效档案选择。账号入口、建档引导和默认选择在这一周衔接起来。
第三阶段:邮箱找回密码
11 月 8 日,登录页增加“忘记密码?”入口。已验证注册邮箱可以获取重置验证码,填写新密码和确认密码,完成后使用新密码重新登录。
重置与注册各自使用独立的验证码流程,不能把注册码拿来重置密码。新码替换旧码、有效期、重发冷却和错误次数限制也单独处理。重置成功会使旧登录凭据失效,包括此前保持的自动登录会话。
普通用户名账号仍由管理员协助;没有验证归属的历史邮箱账号,也不能仅凭知道邮箱地址就通过此入口重置。发送提示不会暴露某个邮箱是否注册。
三次交付怎样验证
| 阶段 | 已完成的检查 | 结果边界 |
|---|---|---|
| 11 月 3—4 日注册开放 | 表单、密码确认、协议、桌面/手机、三语言与构建检查 | 当时尚无邮箱归属验证。 |
| 11 月 4 日本地验证实现 | 67 项相关测试、浏览器检查、构建及邮件服务 API 发送测试 | 本地完成时尚未部署,随后于 11 月 5 日发布。 |
| 11 月 5 日部署 | 发送成功、立即重发冷却、错误验证码不创建账号、线上构建浏览器回归 | 官方测试收件地址的 API 接受结果,不等同于所有真实邮箱的投递保证。 |
| 11 月 8 日找回密码 | 相关后端回归、三语言表单、错误与重试、自动登录、旧凭据失效与线上构建检查 | 使用合成账号及模拟邮件流程,未更改真实用户密码。 |
账号功能的完成状态因此是:邮箱注册、邮箱验证码验证和已验证邮箱找回密码均已在网页上线。 移动安装包需要对应更新版本,不能把网页发布直接当作所有已安装客户端都已更新。
界面中的档案、对话与分析内容均为演示数据。历史配图保留原采集时间与当时界面,缺图时保留文字,具体时间以图注为准。文章记录产品能力与使用变化,不构成医疗诊断或疗效承诺。