From 020bbcdccc8c67c93f418cacc6b167078c097707 Mon Sep 17 00:00:00 2001 From: Misaka_Company Date: Wed, 1 Apr 2026 16:28:26 +0800 Subject: [PATCH] fix(auth): retry silent login after logout to show user selection for Admin When Admin switches user and the switched user logs out, instead of showing the login dialog, re-run silent login to detect if the computer belongs to an Admin user and show user selection dialog. Co-Authored-By: Claude Opus 4.6 --- src/renderer/src/hooks/useAppBootstrap.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/renderer/src/hooks/useAppBootstrap.ts b/src/renderer/src/hooks/useAppBootstrap.ts index 173c572..4f93ff9 100644 --- a/src/renderer/src/hooks/useAppBootstrap.ts +++ b/src/renderer/src/hooks/useAppBootstrap.ts @@ -246,12 +246,19 @@ export function useAppBootstrap() { }, []) const handleLogout = useCallback(async () => { + // 退出登录,清空后端状态 await window.electron.auth.logout() + + // 清空前端状态 setIsAuthenticated(false) setCurrentUser(null) setIsSwitchedByAdmin(false) - setShowLoginDialog(true) - }, []) + setShowUserSelection(false) + setShowLoginDialog(false) + + // 重新进行静默登录,如果是 Admin 会自动弹出用户选择界面 + await initializeAuth() + }, [initializeAuth]) const openUpdateDialog = useCallback(async () => { await Promise.all([refreshUpdateCatalog(), refreshUpdateState()])