From 473cfcffeb19eccc2d924a0e8d2ba4a521ba0a20 Mon Sep 17 00:00:00 2001 From: Lixian Zhou Date: Thu, 12 Mar 2026 17:02:22 -0400 Subject: [PATCH] fix --- client/src/services/AuthService.js | 39 ++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/client/src/services/AuthService.js b/client/src/services/AuthService.js index 3b53447..7fd2cd5 100644 --- a/client/src/services/AuthService.js +++ b/client/src/services/AuthService.js @@ -5,17 +5,46 @@ const login = (data) => { }; const getCurrentUserFromServer = () => { - return http.get('/auth/me'); + return http.get('/auth/me', { + params: { + _ts: Date.now() + } + }); }; const refreshCurrentUserPermissions = async () => { const token = localStorage.getItem('token'); if (!token) return null; - const { data } = await getCurrentUserFromServer(); - if (data) { - localStorage.setItem('user', JSON.stringify(data)); + const existingUser = getCurrentUser() || {}; + const persistUser = (nextUserData) => { + const mergedUser = { + ...existingUser, + ...nextUserData + }; + localStorage.setItem('user', JSON.stringify(mergedUser)); + return mergedUser; + }; + + try { + const { data } = await getCurrentUserFromServer(); + if (data) { + return persistUser(data); + } + } catch (error) { + const userId = existingUser?.id; + if (!userId) throw error; + const { data } = await http.get(`/employees/${userId}`, { + params: { + _ts: Date.now() + } + }); + if (data) { + return persistUser(data); + } + throw error; } - return data; + + return existingUser; }; const logout = (data, shouldClearSession = false) => {