fix(web): 守卫跳转登录页前清除 cookie,修复 cookie 与 localStorage 不一致导致的无限重定向白屏
(main)/layout.tsx 的客户端守卫判定未登录时只跳 /login,未清 cookie; 而 proxy.ts 仅凭 cookie 是否存在放行,二者在 cookie 存在但 localStorage 为空时互相弹跳 → 无限重定向 → 白屏。跳转前调用 auth.clearToken() 同步 清除两处凭证,与退出登录/401 处理的既有约定保持一致。 Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
1 parent
89e6df837a
commit
3c8a9f74f8
1 file changed
+4
@@ -37,6 +37,10 @@ export default function Layout({ children }: Readonly<{ children: ReactNode }>)
|
||||
if (auth.getToken()) {
|
||||
setAuthed(true);
|
||||
} else {
|
||||
// 客户端守卫认为未登录时,必须同时清掉 cookie:否则 proxy.ts 仅凭
|
||||
// “cookie 存在”就把我们从 /login 又重定向回主界面,与本守卫来回弹跳
|
||||
// 形成无限重定向 → 白屏(cookie 与 localStorage 不一致时触发)。
|
||||
auth.clearToken();
|
||||
window.location.href = "/login";
|
||||
}
|
||||
}, []);
|
||||
|
||||
Reference in new issue
Block a user