diff --git a/novalon-manage-web/src/router/guards.tsx b/novalon-manage-web/src/router/guards.tsx index 78894eb..8d3cc21 100644 --- a/novalon-manage-web/src/router/guards.tsx +++ b/novalon-manage-web/src/router/guards.tsx @@ -9,17 +9,18 @@ export async function authLoader() { return redirect('/login') } - const authState = useAuthStore.getState() + let authState = useAuthStore.getState() if (!authState.initialized) { authState.initFromStorage() + authState = useAuthStore.getState() } if (!authState.isAuthenticated) { return redirect('/login') } - const permState = usePermissionStore.getState() + let permState = usePermissionStore.getState() if (!permState.loaded) { const restored = permState.initFromStorage() @@ -27,10 +28,12 @@ export async function authLoader() { try { await permState.fetchUserMenus() } catch { + authState = useAuthStore.getState() authState.logout() return redirect('/login') } } + permState = usePermissionStore.getState() } return null