### 问题 会话层提供了登录、注册、发码等操作,但没有任何界面调用它们。用户无法登录,因此产品的全部功能都无法使用。 ### 目标 提供账号面板,覆盖注册与两条登录路径,让用户能够真正进入产品。 ### 范围 包含: - 账号面板,入口为查询参数 `?account=login`,该地址是会话层路由守卫既定的跳转目标 - 验证码免密登录:填写邮箱、获取验证码、提交 - 密码登录:填写邮箱、密码与验证码 - 注册:邮箱、密码、验证码,昵称可选 - 发送验证码的 60 秒冷却倒计时 - 后端业务错误原样呈现,包括账号被封禁、验证码错误或过期、请求过于频繁 - 登录成功后按 `returnTo` 回跳,无 `returnTo` 时回到首页 不包含: - 找回密码。后端接口尚不存在,缺口见 #154。面板中保留该入口的位置并说明尚未开放,不做隐藏,也不做点击无反应的死链。 - 第三方登录、多因素认证。 ### 实现约束 - 校验规则与后端保持一致:密码 8 到 128 位,验证码固定 6 位,昵称不超过 50 字。 - 验证码有效期 5 分钟,发送冷却 60 秒;`/auth/send-code` 属于敏感接口,限流为每 IP 每分钟 10 次。倒计时结束前不得再次发送。 - `/auth/login-by-code` 在账号不存在时会自动注册。界面必须让用户知道这一次操作创建了新账号,不能默不作声。 - 提交过程中禁止重复提交,且失败后保留已填内容。 - 默认呈现哪条登录路径取决于 #157 的结论,当前倾向以免密登录为主、密码登录为次要入口。 ### 验收标准 - 三条路径(免密登录、密码登录、注册)均可完成并进入已登录状态。 - 发码后按钮进入 60 秒倒计时,期间不可再次点击。 - 后端返回的业务错误在面板内可见,且不清空已填写的内容。 - 带 `returnTo` 进入面板并登录成功后,回到该地址。 - 免密登录创建新账号时,界面给出明确告知。 ---
问题
会话层提供了登录、注册、发码等操作,但没有任何界面调用它们。用户无法登录,因此产品的全部功能都无法使用。
目标
提供账号面板,覆盖注册与两条登录路径,让用户能够真正进入产品。
范围
包含:
?account=login,该地址是会话层路由守卫既定的跳转目标returnTo回跳,无returnTo时回到首页不包含:
实现约束
/auth/send-code属于敏感接口,限流为每 IP 每分钟 10 次。倒计时结束前不得再次发送。/auth/login-by-code在账号不存在时会自动注册。界面必须让用户知道这一次操作创建了新账号,不能默不作声。验收标准
returnTo进入面板并登录成功后,回到该地址。