这一期,先看重点

  • 邮箱注册先开放,再接入归属验证,三个阶段分别记录。
  • 六位验证码、十分钟有效期、重发冷却与失败提示。
  • 注册与重置密码分开验证,旧用户名账号继续兼容。

邮箱注册不是在登录页多加一个按钮就结束了。它涉及邮箱格式、归属验证、重复账号、协议、会话恢复、语言和邮件发送失败,也要给忘记密码的用户留一条可完成的路径。11 月首周按阶段补齐了这些工作。

第一阶段:把邮箱注册入口开放出来

11 月 3 日的登录页重设计已实现邮箱、密码、确认密码和用户协议;11 月 4 日又明确开放注册入口。新用户以邮箱注册家长账号,已有管理员创建的用户名账号继续登录,两类入口共同使用同一套页面。

邮箱会去掉首尾空格并统一大小写;邮箱登录大小写不敏感。注册时检查重复邮箱及密码条件,要求两次输入一致。新账号固定为普通家长权限,不能通过注册表单自行选择更高权限。协议接受只属于注册流程。

2026 年 11 月 4 日 17:24 的回归截图,使用占位邮箱和遮盖密码。当时邮箱注册已开放,但尚未要求邮箱验证码。

这个阶段不能被描述成“已经验证邮箱”。当时只是完成注册入口与账号创建;验证归属是随后接入的独立步骤。

第二阶段:先证明邮箱归属,再创建账号

11 月 4 日晚完成 Resend 邮箱验证的本地实现,11 月 5 日完成网页部署。注册改为:输入邮箱,获取六位验证码,填写密码与确认密码,同意协议,再提交注册。

发送验证码成功并不直接创建账号,也不会提前把用户登录。只有验证码验证通过后才完成账号创建、记下已验证状态和协议接受,再进入后续使用流程。

2026 年 11 月 4 日晚的实际浏览器回归界面。邮箱为合成占位资料,发送和注册接口由测试夹具模拟;不包含真实用户的验证码或密码。

验证码背后的具体处理

项目 实现行为
有效期 六位数字验证码,十分钟内有效。
重发间隔 获取后至少等待六十秒再发送,界面显示等待状态。
重新发送 新验证码替换旧验证码,旧码不能继续使用。
错误输入 限制同一验证码的错误尝试次数,错误时给出可理解的反馈。
发送失败 显示发送失败,不能使用未成功发出的验证码完成注册。
语言 邮件与页面跟随简体中文、繁体中文或英文设置。
保存与重启 验证状态和必要的频率限制持久保存,服务重启不会让未完成流程绕过校验。
重复邮箱 明确处理已经存在的邮箱,避免创建重复账号。
密码 至少八个字符,检查确认密码和底层加密所允许的长度。

这部分还补了按邮箱与请求来源的发送频率限制。验证码按安全摘要保存,不在页面、接口响应或日志中返回明文。博客只记录行为,不公开实际发信凭据或账号资料。

旧账号和新用户分别怎样进入

已有用户名账号沿用原登录流程;已有邮箱账号不会因验证功能上线而被要求重新注册。新注册邮箱账号完成验证后,可继续进入家长使用流程。

如果新家长尚未建立儿童档案,会进入两步建档引导:先了解档案用途,再填昵称和年龄,也可以选择稍后。拥有已有档案的账号则恢复有效档案选择。账号入口、建档引导和默认选择在这一周衔接起来。

第三阶段:邮箱找回密码

11 月 8 日,登录页增加“忘记密码?”入口。已验证注册邮箱可以获取重置验证码,填写新密码和确认密码,完成后使用新密码重新登录。

重置与注册各自使用独立的验证码流程,不能把注册码拿来重置密码。新码替换旧码、有效期、重发冷却和错误次数限制也单独处理。重置成功会使旧登录凭据失效,包括此前保持的自动登录会话。

2026 年 11 月 8 日的正式网页,空表单。截图没有发送真实邮件,也没有重置真实账号。

普通用户名账号仍由管理员协助;没有验证归属的历史邮箱账号,也不能仅凭知道邮箱地址就通过此入口重置。发送提示不会暴露某个邮箱是否注册。

三次交付怎样验证

阶段 已完成的检查 结果边界
11 月 3—4 日注册开放 表单、密码确认、协议、桌面/手机、三语言与构建检查 当时尚无邮箱归属验证。
11 月 4 日本地验证实现 67 项相关测试、浏览器检查、构建及邮件服务 API 发送测试 本地完成时尚未部署,随后于 11 月 5 日发布。
11 月 5 日部署 发送成功、立即重发冷却、错误验证码不创建账号、线上构建浏览器回归 官方测试收件地址的 API 接受结果,不等同于所有真实邮箱的投递保证。
11 月 8 日找回密码 相关后端回归、三语言表单、错误与重试、自动登录、旧凭据失效与线上构建检查 使用合成账号及模拟邮件流程,未更改真实用户密码。

账号功能的完成状态因此是:邮箱注册、邮箱验证码验证和已验证邮箱找回密码均已在网页上线。 移动安装包需要对应更新版本,不能把网页发布直接当作所有已安装客户端都已更新。

关于配图与时间

界面中的档案、对话与分析内容均为演示数据。历史配图保留原采集时间与当时界面,缺图时保留文字,具体时间以图注为准。文章记录产品能力与使用变化,不构成医疗诊断或疗效承诺。