5.0 KiB
5.0 KiB
首次登录修改密码功能 - 测试清单
测试前准备
- ✅ 执行安装脚本或 SQL,添加
is_paw字段 - ✅ 设置测试账号:
UPDATE la_admin SET is_paw = 0 WHERE id = 1; - ✅ 确认前后端代码已更新
测试场景
场景 1:正常登录流程
步骤:
- 使用
is_paw = 0的账号登录 - 观察是否自动跳转到修改密码页面
- 输入新密码(至少 6 位)
- 点击"确认修改"
- 观察是否提示"密码修改成功,请重新登录"
- 使用新密码重新登录
- 观察是否能正常进入系统
预期结果:
- ✅ 登录后自动跳转到修改密码页面
- ✅ 修改密码成功
- ✅ 使用新密码能正常登录
- ✅ 数据库中
is_paw已更新为 1
场景 2:URL 防护测试(重要!)
步骤:
- 使用
is_paw = 0的账号登录 - 登录后会跳转到修改密码页面
- 在浏览器地址栏直接输入其他页面 URL(如:
/workbench/index) - 按回车访问
预期结果:
- ✅ 无论输入什么 URL,都会被强制跳转回修改密码页面
- ✅ 无法绕过修改密码页面访问其他页面
场景 3:密码验证测试
步骤:
- 在修改密码页面输入少于 6 位的密码
- 点击"确认修改"
预期结果:
- ✅ 提示"密码长度不能少于6位"
步骤:
- 两次输入不同的密码
- 点击"确认修改"
预期结果:
- ✅ 提示"两次输入的密码不一致"
场景 4:已修改密码的用户
步骤:
- 使用
is_paw = 1的账号登录 - 观察是否直接进入系统
预期结果:
- ✅ 直接进入系统,不跳转到修改密码页面
步骤:
- 在浏览器地址栏输入
/change-password - 按回车访问
预期结果:
- ✅ 自动跳转到首页,无法访问修改密码页面
场景 5:未登录用户
步骤:
- 退出登录
- 在浏览器地址栏输入
/change-password - 按回车访问
预期结果:
- ✅ 自动跳转到登录页面
场景 6:企业微信登录
步骤:
- 设置企业微信绑定的管理员
is_paw = 0 - 使用企业微信登录
- 观察是否跳转到修改密码页面
预期结果:
- ✅ 登录后自动跳转到修改密码页面
- ✅ 修改密码流程与账号密码登录一致
场景 7:页面刷新测试(重要!)
步骤:
- 使用
is_paw = 0的账号登录 - 跳转到修改密码页面后,刷新浏览器(F5 或 Ctrl+R)
- 观察页面状态
预期结果:
- ✅ 刷新后仍然停留在修改密码页面
- ✅ 不会跳转到其他页面
步骤(进阶测试):
- 使用
is_paw = 0的账号登录 - 跳转到修改密码页面
- 在地址栏输入其他页面 URL(如
/workbench/index) - 按回车
- 观察是否跳转回修改密码页面
- 刷新浏览器
- 观察是否仍然在修改密码页面
预期结果:
- ✅ 输入其他 URL 后被拦截,跳转回修改密码页面
- ✅ 刷新后仍然在修改密码页面
- ✅ 无法通过任何方式绕过
场景 8:多标签页测试
步骤:
- 使用
is_paw = 0的账号登录 - 跳转到修改密码页面
- 打开新标签页,访问系统其他页面
预期结果:
- ✅ 新标签页也会被强制跳转到修改密码页面
数据库验证
修改前
SELECT id, account, is_paw FROM la_admin WHERE id = 1;
-- 应该显示 is_paw = 0
修改后
SELECT id, account, is_paw FROM la_admin WHERE id = 1;
-- 应该显示 is_paw = 1
常见问题排查
问题 1:登录后没有跳转到修改密码页面
检查:
- 数据库中
is_paw字段是否为 0 - 前端代码是否正确判断
is_paw字段 - 浏览器控制台是否有错误
问题 2:刷新后可以进入系统
检查:
- 后端
AdminLogic::detail()方法是否返回is_paw字段 - 前端
getUserInfo()方法是否更新isPaw状态 - 路由守卫是否在获取用户信息后检查
isPaw - 浏览器控制台查看 API 返回的数据是否包含
is_paw
问题 3:可以通过 URL 绕过修改密码页面
检查:
permission.ts路由守卫是否正确配置userStore.isPaw状态是否正确存储- 浏览器控制台查看路由守卫是否执行
问题 4:修改密码后 is_paw 没有更新
检查:
- 后端
changeFirstPassword方法是否正确更新数据库 - 查看数据库确认字段值
- 检查后端日志是否有错误
问题 5:修改密码后无法登录
检查:
- 密码加密方式是否正确(应使用
create_password函数) - 检查后端日志
- 尝试重置密码
测试完成标准
- ✅ 所有 8 个测试场景都通过
- ✅ 数据库字段正确更新
- ✅ 无法通过任何方式绕过修改密码页面
- ✅ 密码验证规则正常工作
- ✅ 修改密码后能正常登录使用系统
性能测试
- ✅ 路由守卫不影响正常用户的访问速度
- ✅ 登录流程响应时间正常(< 2 秒)
- ✅ 修改密码操作响应时间正常(< 1 秒)