# 管理后台操作中自动退出:第二轮修复(2026-10-16) 用户再次确认:正在操作时突然回到登录页。未取得该次失败请求的网络记录,因此以下是已复现的代码缺陷,不将其直接等同于用户当次退出的唯一原因。 ## 现场与复现 - 正式站 `https://admin.xiaoshu.pro` 版本为 `3bf81740cc1ceca68b74da52bb8ba7baddc61fa7`。实际下载的 JavaScript 包含上次添加的会话复核,同时仍包含普通 HTTP 401 清除登录、直接使用 storage 事件旧值的逻辑。 - 使用现有配置的运营会话只读请求 Parse `/sessions/me`,HTTP 200;创建时间 2026-09-09,到期时间 2027-09-09。只证明这条抽查会话有效,不代表受影响用户会话均有效。 - 新增回归用例,在修改实现前运行:17 项中 5 项失败。复现了普通 401 误退出、非用户结构的成功响应误退出、旧请求清除另一标签页的新登录、排队的旧退出事件覆盖新登录,以及迟到的身份响应将旧登录写回共享存储。 ## 修复 - Parse 复核只有 HTTP 400/401 且明确返回错误码 209 才判定 token 失效。单独的 HTTP 401、网络故障、异常响应结构保留登录,业务请求仍返回错误且不会自动重复写操作。 - 读取到真实用户对象后仍核对账号一致性、停用和删除状态;有效的安全退出行为保留。 - storage 通知到达时读取当前共享状态,避免重放排队中的旧登录/退出值;检查失败和清除会话之前同样核对共享状态。 - 身份信息落盘前同步共享登录,避免迟到响应覆盖其他标签页的新登录。 - 本地持久存储写入失败时保持标签页内会话可用,不因共享存储为空强迫退出。 ## 验证 - ChromeHeadless 定向回归 36 项通过:会话服务、云请求、登录页、路由缓存、实时刷新。 - `npm run build:admin` 通过;仅已有样式预算和 CommonJS 警告。 - `git diff --check` 通过。 - 发布结果另行追加;本节不将本地验证等同于正式部署,也不声称已完成受影响用户环境的持续使用验收。