Files
platforms/docs/项目文档_移动端登录密码必填校验_v1.0.md
2026-09-04 23:00:55 +08:00

69 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 移动端登录密码必填校验项目文档 v1.0
## 1. 项目概述
- 项目名称:用户端与工作人员端登录密码必填校验。
- 主要功能:在手机号密码登录请求发出前完成字段级校验,阻止空密码请求并提供明确中文反馈。
- 技术栈Flutter、Dart、Material 组件、Flutter Widget Test。
- 运行环境:项目当前 Flutter SDK 与 Web 构建环境。
- 实施范围:`user_app``service_app` 登录页面及其组件测试;后端接口、会话公共接口和数据库均不修改。
## 2. 目录结构说明
```text
platforms/
├── apps/
│ ├── user_app/
│ │ ├── lib/ui/features/auth/login_page.dart # 用户端登录校验与交互
│ │ └── test/ui/login_page_test.dart # 用户端登录组件回归测试
│ └── service_app/
│ ├── lib/ui/features/auth/login_page.dart # 工作人员端登录校验与交互
│ └── test/ui/login_page_test.dart # 工作人员端登录组件回归测试
└── docs/
├── 03-用户端App需求.md # 用户端登录验收口径
├── 04-服务端App需求.md # 工作人员端登录验收口径
└── 操作日志_移动端登录密码必填校验_20260904.md # 本次实施与验证记录
```
## 3. 核心文件说明
### 用户端登录页
- `_login` 同时校验手机号格式和密码是否为空;任一字段无效时立即返回,不调用 `UserSession.login`
- 手机号和密码各自维护字段错误,允许同时展示,并聚焦第一个无效字段。
- 修改任一登录凭据会清除旧的接口级错误;修改对应字段会清除该字段错误。
- 密码框回车和“安全登录”按钮共用 `_login`,密码内容不做裁剪或长度变换。
### 工作人员端登录页
- 与用户端采用相同的校验、清错和聚焦规则。
- 密码框新增回车提交,并与“进入工作台”按钮共用 `_login`
- 继续调用既有 `StaffSession.login`,不改变会话及接口协议。
### 登录页组件测试
- 使用记录型会话替身统计登录调用,证明空密码时调用次数为零。
- 覆盖双字段错误、合法手机号配空密码、首个错误字段聚焦、对应错误清除、回车提交及密码原样传递。
## 4. 变更记录
### v1.02026-09-04
- 两个 App 新增密码必填字段错误“请输入密码”。
- 两个 App 统一双字段校验、首错聚焦和凭据编辑清错行为。
- 工作人员端补齐密码框回车登录。
- 新增两端登录页回归测试,不改变后端登录错误码和既有会话接口。
## 5. 维护指南
- 后续新增登录入口时,应复用同一提交函数,禁止绕过字段校验直接调用会话登录方法。
- 登录密码是精确凭据,不应使用 `trim`、大小写转换或注册阶段的最短长度规则处理。
- 若未来支持验证码登录,应按登录模式分别校验密码或验证码,避免把两种凭据同时设为必填。
- 修改交互后至少运行两端 `flutter analyze --no-pub`、登录页定向测试和完整测试。
## 6. 已知边界
- 本次仅在客户端阻止空密码请求,后端仍维持现有统一认证失败语义。
- 本次不修改手机号规则、密码注册规则、忘记密码流程或验证码登录能力。
- 非空但错误的密码仍由后端统一返回认证失败,客户端不会推断账户是否存在。