密码恢复
密码恢复功能帮助用户在忘记密码时安全地重新获取系统访问权限。
恢复方式
方式一:邮箱验证
适用于绑定了邮箱的用户:
1. 在登录页面点击"忘记密码"
2. 输入注册邮箱地址
3. 点击"发送验证码"
4. 检查邮箱收取验证码(6位数字)
5. 输入验证码
6. 设置新密码
7. 确认新密码
8. 完成重置验证码有效期: 15分钟
发送限制: 同一邮箱每小时最多发送5次
方式二:管理员重置
适用于无法通过邮箱恢复的用户:
管理员登录
→ 用户管理
→ 找到目标用户
→ 点击"重置密码"
→ 设置新的临时密码
→ 通知用户使用临时密码登录
→ 用户首次登录后强制修改密码方式三:安全问题验证
适用于设置了安全问题的用户:
1. 在登录页面点击"忘记密码"
2. 选择"安全问题验证"
3. 回答预设的安全问题
4. 验证通过后设置新密码密码要求
新密码必须满足以下要求:
| 要求 | 说明 |
|---|---|
| 最小长度 | 8个字符 |
| 大写字母 | 至少包含1个大写字母 |
| 小写字母 | 至少包含1个小写字母 |
| 数字 | 至少包含1个数字 |
| 特殊字符 | 建议包含(!@#$%^&*) |
| 历史密码 | 不能与最近5次密码相同 |
安全策略
账号锁定
连续密码输入错误将触发账号锁定:
| 错误次数 | 处理方式 |
|---|---|
| 3次 | 显示验证码 |
| 5次 | 账号锁定15分钟 |
| 10次 | 账号锁定1小时 |
| 15次 | 账号锁定24小时,需管理员解锁 |
密码过期
系统支持配置密码有效期策略:
- 默认有效期: 90天
- 到期提醒: 到期前14天开始提醒
- 到期处理: 到期后强制修改密码
操作流程图
用户忘记密码
│
├── 有绑定邮箱?
│ ├── 是 → 邮箱验证 → 重置密码
│ └── 否 ──┐
│ │
├── 设置了安全问题?
│ ├── 是 → 安全问题验证 → 重置密码
│ └── 否 ──┐
│ │
└── 联系管理员 → 管理员重置 → 用户首次登录修改常见问题
| 问题 | 解决方法 |
|---|---|
| 收不到验证码邮件 | 检查垃圾邮件文件夹;确认邮箱地址正确 |
| 验证码已过期 | 重新发送验证码 |
| 账号被锁定 | 等待锁定期结束或联系管理员解锁 |
| 忘记安全问题答案 | 联系管理员进行人工重置 |
| 新密码不符合要求 | 确保满足所有密码复杂度要求 |
注意事项
- 定期更新密码,不要使用容易猜测的密码
- 不要将密码告知他人或记录在不安全的地方
- 建议设置邮箱和安全问题双重恢复方式
- 管理员重置密码后,请立即修改为个人密码
- 如发现账号异常,请立即修改密码并通知管理员
附录:规范章节补全(v5.0.3.108)
为对齐项目用户文档标准结构,下列章节补齐若干未在正文中单独列出的视角。已在正文覆盖的章节在此段仅作简述并标注
见上文指引。
1. 概述
见正文「恢复方式」。密码恢复模块提供邮箱验证 / 管理员重置 / 安全问题验证三条路径,配合密码复杂度要求与账号锁定 / 密码过期安全策略。
2. 核心特性
- 三种恢复方式(邮箱 / 管理员 / 安全问题)
- 密码复杂度校验 + 历史密码限制(近 5 次)
- 账号锁定阶梯(3/5/10/15 次)
- 密码过期策略(默认 90 天)
3. 系统架构
忘记密码 → 前端(恢复向导)
│ REST /api/auth/password-recovery
▼
后端(Spring Boot Security + JWT)→ 验证码 / 安全问题 / 管理员重置
▼
MySQL(password_recovery / users,密码哈希存储)4. 系统定位
厂家管理系统的账号自助 / 协助找回层,与 用户管理、权限管理 共同构成账号安全体系。
5. 核心功能
| 方式 | 说明 |
|---|---|
| 邮箱验证 | 6 位验证码(15 分钟有效,每小时 ≤5 次) |
| 管理员重置 | 设临时密码,首登强制改 |
| 安全问题 | 回答预设问题后重置 |
6. 技术架构
后端 Spring Boot 3.2.1 + Spring Security;恢复记录存 password_recovery,账号存 users;密码经哈希(如 BCrypt)存储,系统不存明文。
7. 系统特点
- 三路径覆盖不同恢复条件
- 阶梯式锁定抵御暴力破解
- 临时密码首登强制修改
8. 应用场景
用户忘记密码自助找回;无邮箱 / 安全问题时管理员协助重置;密码到期强制更新。
9. 竞品对比
| 维度 | 本模块 | 仅管理员手工改 |
|---|---|---|
| 自助恢复 | ✅ 邮箱 / 安全问题 | ❌ |
| 暴力破解防护 | ✅ 阶梯锁定 | ⚠️ |
| 密码历史限制 | ✅ 近 5 次 | ❌ |
10. 配置参考
验证码有效期(15 分钟)/ 发送限制(5 次/小时)/ 锁定阶梯 / 密码有效期(90 天)/ 复杂度要求见正文对应表。邮件发送需配置 SMTP(见 安装部署)。
11. 性能指标
验证码生成 / 校验为轻量操作;邮件发送依赖 SMTP 时延;锁定计数可经 Redis 维护。
12. 测试覆盖
验证码有效期 / 发送限制、密码复杂度 / 历史校验、锁定阶梯、临时密码首登强制改由后端集成测试覆盖。
13. 安全考虑
- 密码哈希存储,系统不存明文
- 账号锁定阶梯(3 验证码 / 5 锁 15min / 10 锁 1h / 15 锁 24h 需管理员)
- 密码历史限制防复用;临时密码首登强制改
- 恢复 / 重置操作写
device_logs审计
14. 故障排除
见正文「常见问题」表:收不到验证码、验证码过期、账号被锁、忘记安全问题答案、新密码不合规。
15. 关键文件
| 资源 | 说明 |
|---|---|
password_recovery 表 | 恢复 / 验证码记录 |
users 表 | 账号 / 密码哈希 / 状态 |
/api/auth/* | 认证与密码恢复 API |
| 前端登录页「忘记密码」 | 恢复向导 |
16. 使用示例
见正文「方式一:邮箱验证」八步流程与「操作流程图」(邮箱 → 安全问题 → 管理员 的降级路径)。
