fix(admin): 改密后管理面板永久「连接中断」+ 顶部版本号多一个 v

- /ws 身份在握手时确定,而 startRealtime() 全生命周期只建一次连接;改密会作废
  服务端全部会话,服务端以 1008 关闭该连接,前端对 1008 是永久停止重连
  (给真鉴权失败设计的)→ 重新登录后无人重启连接,界面一直显示「连接中断」,
  只有重开窗口才会用新会话重新握手。
  修:新增 restartRealtime(),登录成功与退出登录时各重启一次(同时修掉
  「访客浏览后登录,旧连接仍是 guest 身份」的问题);1008 语义保持不变。
- AdminLayout 顶部版本号模板写死 v 前缀,而 serverHealth 已是完整版本串
  (dev_0.1.0)→ 显示成 vdev_0.1.0。

新增 web/src/admin/tests/event-realtime.test.ts 锁该行为(临时置空 restartRealtime
会失败);为让 node --test 能加载真实 store,测试解析钩子补 @/ 别名。
This commit is contained in:
AskaEth committed 2026-09-09 23:19:23 +08:00
1 parent 27bddefaad
commit a5941be9c4
5 files changed
+125 -3

No files matched your search

+2
View File
@@ -26,6 +26,8 @@ async function submit(): Promise<void> {
}
toast.success(`欢迎回来,${auth.displayName}`)
await data.load()
// 登录后会话身份变了(此前可能是访客连接),重建 WS 让服务端重新识别身份
data.restartRealtime()
// 首次登录强制改密,改完才放行到业务页面
void router.push({ name: auth.user?.mustChangePassword ? 'password' : 'entry' })
}