From 2d129c049353833d3435634126be1696da247a2e Mon Sep 17 00:00:00 2001 From: Tatiana Nikolaeva Date: Mon, 26 May 2025 15:14:23 +0500 Subject: [PATCH] fix get user --- SurveyFrontend/src/api/AuthApi.ts | 12 +++---- .../src/components/Account/Account.tsx | 34 ++++++++++++++----- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/SurveyFrontend/src/api/AuthApi.ts b/SurveyFrontend/src/api/AuthApi.ts index f549b25..749d189 100644 --- a/SurveyFrontend/src/api/AuthApi.ts +++ b/SurveyFrontend/src/api/AuthApi.ts @@ -30,6 +30,7 @@ export const getCurrentUser = async () => { if (response.status === 401) { localStorage.removeItem("token"); + localStorage.removeItem("user"); throw new Error("Сессия истекла. Пожалуйста, войдите снова."); } @@ -57,7 +58,8 @@ export const registerUser = async (data: IRegistrationData) => { localStorage.setItem("token", responseData.accessToken); localStorage.setItem("user", JSON.stringify({ firstName: data.firstName, - lastName: data.lastName + lastName: data.lastName, + email: data.email })); } @@ -79,13 +81,11 @@ export const authUser = async (data: IAuthData) => { const token = responseData.accessToken || responseData.token; if (token) { localStorage.setItem("token", token); - const user = localStorage.getItem("user"); - if (!responseData.user && user) { - responseData.user = JSON.parse(user); - } - if (responseData.user) { localStorage.setItem("user", JSON.stringify(responseData.user)); + } else { + const userData = await getCurrentUser(); + localStorage.setItem("user", JSON.stringify(userData)); } } diff --git a/SurveyFrontend/src/components/Account/Account.tsx b/SurveyFrontend/src/components/Account/Account.tsx index c618582..3f93837 100644 --- a/SurveyFrontend/src/components/Account/Account.tsx +++ b/SurveyFrontend/src/components/Account/Account.tsx @@ -11,20 +11,36 @@ const Account: React.FC = ({ href }) => { const [userName, setUserName] = useState(); const [isLoading, setIsLoading] = useState(true); + // useEffect(() => { + // const fetchUserData = async () => { + // try { + // const userData = localStorage.getItem("user"); + // + // if (userData) { + // const parsedData = JSON.parse(userData); + // setUserName(`${parsedData.firstName} ${parsedData.lastName}`); + // } else { + // const data = await getCurrentUser(); + // setUserName(`${data.firstName} ${data.lastName}`); + // } + // } catch (error) { + // console.error("Ошибка загрузки данных пользователя:", error); + // } finally { + // setIsLoading(false); + // } + // }; + // + // fetchUserData(); + // }, []); + useEffect(() => { const fetchUserData = async () => { try { - const userData = localStorage.getItem("user"); - - if (userData) { - const parsedData = JSON.parse(userData); - setUserName(`${parsedData.firstName} ${parsedData.lastName}`); - } else { - const data = await getCurrentUser(); - setUserName(`${data.firstName} ${data.lastName}`); - } + const userData = await getCurrentUser(); + setUserName(`${userData.firstName} ${userData.lastName}`); } catch (error) { console.error("Ошибка загрузки данных пользователя:", error); + localStorage.removeItem("user"); } finally { setIsLoading(false); }