diff --git a/docs/云端全项目测试报告.md b/docs/云端全项目测试报告.md index cb46927..2671011 100644 --- a/docs/云端全项目测试报告.md +++ b/docs/云端全项目测试报告.md @@ -531,3 +531,13 @@ smail/ - 本轮 01:27、01:32、01:37 检查 Smail 服务均为 active,8001、8002 监听正常;未停止服务或触碰同机其他项目。此项是运行状态检查,不是业务验收。 - 最后已取消所有编辑窗口并注销助手测试账号。reviewadmin 恢复管理员及甲乙两组;reviewb 未绑定外部邮箱、未开启安全码,通知授权仍关闭。旧版产生的测试验证码邮件仍保留在其收件箱,本次未删除邮件或项目文件。 - [!] SMTP 图形客户端真实 TLS 登录、投递及旧凭据撤销,外部邮箱正向完整验证,安全码完整恢复链路,清库生产流程回归及本报告其他未闭环门槛继续保留;全项目验收仍未完成。 + +## 2026-09-26 降级旧会话与默认分组专项 + +- 本轮继续保留专项现场,未清库;所有业务验证通过浏览器键鼠进行。用户的 Page4 未操作,助手使用两个隔离会话分别登录超级管理员和测试管理员。 +- [✓] reviewadmin 原为甲乙两组管理员,保留其用户管理页面;超级管理员将其降为普通用户,并明确单选默认分组,保存成功。再次打开编辑窗口确认普通用户及默认分组。 +- [✓] 降级前的旧页面没有立即自动跳转;点击用户管理的刷新列表后跳回登录页面。此项只证明下次受保护操作触发会话失效,不代表实时推送踢出,也不代表所有客户端协议均已验证。 +- [✓] 使用原普通登录密码重新登录后显示普通用户,用户管理和配置管理入口消失。随后已通过超级管理员页面恢复管理员及甲乙两组,列表显示管理员。 +- [!] 发现界面残留:旧会话失效后重新登录,设置抽屉仍自动打开,原用户管理标签已无权限,内容区域空白。源码定位为业务请求的认证失败跳转没有调用全局状态清理,而主动注销会清理该状态。 +- [x] 修复认证失败跳转前清理全局登录和设置状态;登录及二次验证页面不执行该清理,避免打断正在进行的登录挑战。待最新构建云端部署及浏览器复验,不能将源码修复算作实测通过。 +- [ ] 安全码完整密码恢复链路仍未开始,本轮未设置 reviewb 的密保问题或生成新恢复码。 diff --git a/frontend/src/utils/axios.js b/frontend/src/utils/axios.js index 0f3d2b2..658a624 100644 --- a/frontend/src/utils/axios.js +++ b/frontend/src/utils/axios.js @@ -1,4 +1,5 @@ import axios from 'axios' +import {useGlobalStatusStore} from '@/stores/useGlobalStatusStore'; import lang from '../i18n/i18n'; import {router} from "@/router"; import {createLoginRedirectHandler} from "@/utils/navigation.mjs"; @@ -21,6 +22,11 @@ const http = axios.create({ let redirectToLogin = null; function handleLoginRedirect() { + const currentRoute = router.currentRoute.value; + if (currentRoute?.name === 'login' || currentRoute?.name === 'login-verification') { + return Promise.resolve(false); + } + useGlobalStatusStore().clear(); if (!redirectToLogin) { redirectToLogin = createLoginRedirectHandler(router); }