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 <noreply@anthropic.com>
This commit is contained in:
@@ -246,12 +246,19 @@ export function useAppBootstrap() {
|
|||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
const handleLogout = useCallback(async () => {
|
const handleLogout = useCallback(async () => {
|
||||||
|
// 退出登录,清空后端状态
|
||||||
await window.electron.auth.logout()
|
await window.electron.auth.logout()
|
||||||
|
|
||||||
|
// 清空前端状态
|
||||||
setIsAuthenticated(false)
|
setIsAuthenticated(false)
|
||||||
setCurrentUser(null)
|
setCurrentUser(null)
|
||||||
setIsSwitchedByAdmin(false)
|
setIsSwitchedByAdmin(false)
|
||||||
setShowLoginDialog(true)
|
setShowUserSelection(false)
|
||||||
}, [])
|
setShowLoginDialog(false)
|
||||||
|
|
||||||
|
// 重新进行静默登录,如果是 Admin 会自动弹出用户选择界面
|
||||||
|
await initializeAuth()
|
||||||
|
}, [initializeAuth])
|
||||||
|
|
||||||
const openUpdateDialog = useCallback(async () => {
|
const openUpdateDialog = useCallback(async () => {
|
||||||
await Promise.all([refreshUpdateCatalog(), refreshUpdateState()])
|
await Promise.all([refreshUpdateCatalog(), refreshUpdateState()])
|
||||||
|
|||||||
Reference in New Issue
Block a user