fix: 移除 admin-ui 残留验证码登录交互 (#27) #32

Closed
opened 2026-08-23 23:22:12 +08:00 by ila · 0 comments
Owner

基本信息

  • 类型:缺陷修复
  • 所属 Epic:#3
  • 所属 MVP / 版本:#19 / MVP-1
  • 阶段:已完成

原始需求

  • 来源:执行 MVP-1 集成验收工单 #27 时发现;复用已验收工单 #29 的账号密码登录需求。
  • 提出时间:2026-08-23
  • 脱敏摘要:后端已取消验证码路由和校验,但 admin-ui 登录页仍显示并强制校验验证码,导致账号密码登录无法形成浏览器闭环。

目标与范围

恢复 #29 已确认行为:管理端登录页只显示并提交用户名、密码;不请求验证码接口,不要求 code/uuid,不改变后端 JWT、账号、密码、角色或权限模型。

非目标

  • 不增加注册、找回密码、二次验证或新的认证方式。
  • 不修改管理员凭据、Provider、生成链路、迁移或 portal。
  • 不调整 #17 管理端业务页面原型;本工单只恢复已确认登录契约。

依赖与阻塞

  • 前置工单:#29、#24(已完成)。
  • 阻塞:#27 的管理端浏览器集成验收。
  • 原型替代证据:复用 #29 已验收的账号密码登录文字需求和当前登录页复现步骤;属于恢复既有确认行为,无需新原型。

已确认方案

删除 admin-ui 登录页的验证码表单、状态、规则、图标和请求;登录 payload 只包含 username/password。补充登录组件单元测试,断言不再导入/调用验证码 API,页面不出现验证码字段,并保留用户名、密码校验与提交。 同时移除固定基线遗留的预填密码,密码输入默认为空,避免在代码和页面中保留错误的示例口令。

风险与回退

  • 风险:前端请求字段必须与 #29 后端契约一致;测试覆盖请求 payload。
  • 回退:回退本缺陷提交;不涉及数据库或不可逆操作。

文档影响

  • 不影响长期文档,原因:Architecture-and-Code-Map 与 Local-Development-and-Verification 已记录 #29 的无验证码契约,本工单恢复实现与文档一致。

交付文档影响

  • 无交付文档影响,原因:不新增或改变已确认操作流程。

验收标准

  • 登录页只显示用户名、密码和登录按钮,不显示验证码输入或图片。
  • 页面不请求 /api/v1/captcha,登录 payload 只包含 username/password。
  • 用户名、密码必填校验和失败反馈保持有效。
  • admin-ui lint、单元测试、生产构建及真实隔离 MySQL 管理端浏览器登录通过。

实施与验证证据(2026-08-23)

  • 实现提交:8ada556。
  • 登录组件单测覆盖无验证码字段、无验证码 API、仅提交 username/password;admin-ui 全量 35 个单测通过。
  • lint 0 error(98 条既有 warning);正式构建通过。
  • 隔离 chorus_test 创建构造管理员后,Chromium 验证纯账号密码登录成功、验证码请求数为 0;测试账号与日志已清理。
  • 当前状态:已于 2026-08-24 通过用户验收并关闭。

归档证据

用户验收(2026-08-24)

  • 用户明确确认本工单验收通过。
  • 状态更新为已完成并关闭。
## 基本信息 - 类型:缺陷修复 - 所属 Epic:#3 - 所属 MVP / 版本:#19 / MVP-1 - 阶段:已完成 ## 原始需求 - 来源:执行 MVP-1 集成验收工单 #27 时发现;复用已验收工单 #29 的账号密码登录需求。 - 提出时间:2026-08-23 - 脱敏摘要:后端已取消验证码路由和校验,但 admin-ui 登录页仍显示并强制校验验证码,导致账号密码登录无法形成浏览器闭环。 ## 目标与范围 恢复 #29 已确认行为:管理端登录页只显示并提交用户名、密码;不请求验证码接口,不要求 code/uuid,不改变后端 JWT、账号、密码、角色或权限模型。 ## 非目标 - 不增加注册、找回密码、二次验证或新的认证方式。 - 不修改管理员凭据、Provider、生成链路、迁移或 portal。 - 不调整 #17 管理端业务页面原型;本工单只恢复已确认登录契约。 ## 依赖与阻塞 - 前置工单:#29、#24(已完成)。 - 阻塞:#27 的管理端浏览器集成验收。 - 原型替代证据:复用 #29 已验收的账号密码登录文字需求和当前登录页复现步骤;属于恢复既有确认行为,无需新原型。 ## 已确认方案 删除 admin-ui 登录页的验证码表单、状态、规则、图标和请求;登录 payload 只包含 username/password。补充登录组件单元测试,断言不再导入/调用验证码 API,页面不出现验证码字段,并保留用户名、密码校验与提交。 同时移除固定基线遗留的预填密码,密码输入默认为空,避免在代码和页面中保留错误的示例口令。 ## 风险与回退 - 风险:前端请求字段必须与 #29 后端契约一致;测试覆盖请求 payload。 - 回退:回退本缺陷提交;不涉及数据库或不可逆操作。 ## 文档影响 - [x] 不影响长期文档,原因:Architecture-and-Code-Map 与 Local-Development-and-Verification 已记录 #29 的无验证码契约,本工单恢复实现与文档一致。 ## 交付文档影响 - [x] 无交付文档影响,原因:不新增或改变已确认操作流程。 ## 验收标准 - [x] 登录页只显示用户名、密码和登录按钮,不显示验证码输入或图片。 - [x] 页面不请求 `/api/v1/captcha`,登录 payload 只包含 username/password。 - [x] 用户名、密码必填校验和失败反馈保持有效。 - [x] admin-ui lint、单元测试、生产构建及真实隔离 MySQL 管理端浏览器登录通过。 ## 实施与验证证据(2026-08-23) - 实现提交:`8ada556`。 - 登录组件单测覆盖无验证码字段、无验证码 API、仅提交 username/password;admin-ui 全量 35 个单测通过。 - lint 0 error(98 条既有 warning);正式构建通过。 - 隔离 `chorus_test` 创建构造管理员后,Chromium 验证纯账号密码登录成功、验证码请求数为 0;测试账号与日志已清理。 - 当前状态:已于 2026-08-24 通过用户验收并关闭。 ## 归档证据 - Wiki:[Task-32-移除-admin-ui-残留验证码登录交互](https://git.ilapage.cn/OPC/chorus/wiki/Task-32-移除-admin-ui-残留验证码登录交互) - revision:`6b6f2de5d99ccee36a10860e92c1e64dd2a78858` - 按规则未导出 `docs/task/`。 ## 用户验收(2026-08-24) - 用户明确确认本工单验收通过。 - 状态更新为已完成并关闭。
ila closed this issue 2026-08-24 00:04:30 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/chorus#32