编辑 | blame | 历史 | 原始文档

退出登录立即生效

原退出流程先等待服务器注销请求,最多等待默认 30 秒,才清理本地状态和跳转。服务器慢或不返回时,用户会觉得点击退出没有反应。

现在使用退出前的令牌、租户和当前路由快照发起后台注销,本地不等待该请求;立即重置业务状态,明确重置访问令牌、刷新令牌、用户与权限状态,并跳转登录页。同一轮退出合并并发调用。

登录与用户信息请求检查会话版本,退出前的晚到结果不再恢复令牌、权限或触发登录成功跳转。令牌刷新检查原刷新令牌是否仍属于当前会话;旧请求的 401 不会清除已切换的新会话。刷新失败时,等待队列会收到失败,而不是用空令牌重放旧请求。

服务器注销因断网失败时无法保证立即撤销服务器令牌,但本机已退出;没有执行真实用户的登录或注销。没有使用整页刷新规避路由问题。

2026-10-15 验证:

  • mom-pro2-before/scripts/check-logout.cjs:实际状态模块与受控接口,覆盖成功、失败、持续挂起、业务重置异常、晚到登录、晚到用户信息、晚到刷新、旧会话 401、租户快照及刷新失败队列。
  • mom-pro2-before/scripts/check-logout-browser.cjs:真实应用的头像菜单、退出确认弹窗、状态模块和路由,后端与会话均模拟。确认后约 338 毫秒显示登录页,此时服务器注销仍保持未返回;令牌和用户信息为空,注销请求携带原令牌,浏览器无未捕获错误。
  • 结果:scripts/logout-fix-20261015/browser-result.json。
  • 本次修改文件没有前端类型报错;全量类型检查仍有项目其他既有错误。

更新前端即可生效,无需数据库迁移或后端接口调整。