问题
#156 已对齐的口径是密码登录不再需要邮箱验证码,验证码只保留给注册、免密登录与重设密码。#149 已按此实现并于 2026-08-07 合入 main:web/api/auth.py 的 LoginRequest 只有 email 与 password,/auth/login 不再接收验证码。
前端仍停在旧口径,四处:
frontend/src/entities/user/index.ts:28 — login() 入参类型仍声明 code: string
frontend/src/features/account-panel/index.tsx:180 — 验证码格式校验没有 mode 条件,三种模式一律要求 6 位数字
frontend/src/features/account-panel/index.tsx:203 — session.login() 仍把 code 一并发送
frontend/src/features/account-panel/index.tsx:382 — 验证码输入框与「发送验证码」按钮无条件渲染,密码模式下同样出现
另有 index.tsx:35 的模式说明文案仍写「使用密码和邮箱验证码确认身份」。
用户可见的表现:切到「密码登录」页签,填对邮箱和密码也提交不了,必须先走一次邮件往返拿验证码——而这个验证码后端已经不再校验。
目标
前端密码登录路径与后端接口一致,不索取也不发送验证码。免密登录与注册路径的验证码行为保持不变。
范围
只改前端:
frontend/src/entities/user/index.ts、api.test.ts
frontend/src/features/account-panel/index.tsx、index.test.tsx
不改后端,不动 /auth/send-code 的用途枚举,不动注册与免密登录流程,不涉及 #154 的找回密码。
验收标准
- 密码模式下界面不出现验证码输入框与发送按钮
- 只填邮箱与密码即可提交,请求体只含
email 与 password
- 免密登录模式与注册模式的验证码要求原样保留
- 模式说明文案不再提及验证码
- 补测试覆盖两条:密码模式提交的请求体不含
code;密码模式不渲染验证码控件
- 前端五步验证通过(format、lint、typecheck、test、build)
Refs #156
问题
#156 已对齐的口径是密码登录不再需要邮箱验证码,验证码只保留给注册、免密登录与重设密码。#149 已按此实现并于 2026-08-07 合入 main:
web/api/auth.py的LoginRequest只有email与password,/auth/login不再接收验证码。前端仍停在旧口径,四处:
frontend/src/entities/user/index.ts:28—login()入参类型仍声明code: stringfrontend/src/features/account-panel/index.tsx:180— 验证码格式校验没有 mode 条件,三种模式一律要求 6 位数字frontend/src/features/account-panel/index.tsx:203—session.login()仍把code一并发送frontend/src/features/account-panel/index.tsx:382— 验证码输入框与「发送验证码」按钮无条件渲染,密码模式下同样出现另有
index.tsx:35的模式说明文案仍写「使用密码和邮箱验证码确认身份」。用户可见的表现:切到「密码登录」页签,填对邮箱和密码也提交不了,必须先走一次邮件往返拿验证码——而这个验证码后端已经不再校验。
目标
前端密码登录路径与后端接口一致,不索取也不发送验证码。免密登录与注册路径的验证码行为保持不变。
范围
只改前端:
frontend/src/entities/user/index.ts、api.test.tsfrontend/src/features/account-panel/index.tsx、index.test.tsx不改后端,不动
/auth/send-code的用途枚举,不动注册与免密登录流程,不涉及 #154 的找回密码。验收标准
email与passwordcode;密码模式不渲染验证码控件Refs #156