diff --git a/src/pages/login.jsx b/src/pages/login.jsx index d337a93..353196e 100644 --- a/src/pages/login.jsx +++ b/src/pages/login.jsx @@ -42,6 +42,9 @@ export default function Login() { localStorage.setItem("accessToken", response.result.accessToken); localStorage.setItem("memberId", response.result.memberId); localStorage.setItem("nickname", response.result.nickname); + if (response.result.roleType) { + localStorage.setItem("roleType", response.result.roleType); + } // 로그인 성공 후 메인 페이지로 이동 navigate("/members"); diff --git a/src/pages/members.jsx b/src/pages/members.jsx index 40a863c..bd39d5d 100644 --- a/src/pages/members.jsx +++ b/src/pages/members.jsx @@ -46,7 +46,7 @@ const getMemberData = async () => { const response = await getMember(params); // console.log("전체 API 응답:", response); // console.log("response.data:", response?.data); - // console.log("response.data.result:", response?.data?.result); + console.log("response.data.result:", response?.data?.result); if (response && response.data && response.data.result) { // console.log("API 응답 데이터:", response.data.result.content); // console.log("페이지 정보:", response.data.result.page); @@ -80,8 +80,8 @@ const getMemberData = async () => { response.data.result.content?.length || memberData.length; - console.log("계산된 totalElements:", totalElements); - console.log("계산된 totalPages:", Math.ceil(totalElements / pageSize)); + // console.log("계산된 totalElements:", totalElements); + // console.log("계산된 totalPages:", Math.ceil(totalElements / pageSize)); setTotalPages(Math.ceil(totalElements / pageSize)); } diff --git a/src/store/userStore.js b/src/store/userStore.js index 8bdb843..177a534 100644 --- a/src/store/userStore.js +++ b/src/store/userStore.js @@ -1,24 +1,61 @@ import { create } from 'zustand'; +// localStorage에서 사용자 정보 복원 +const loadUserFromStorage = () => { + try { + const memberId = localStorage.getItem('memberId'); + const nickname = localStorage.getItem('nickname'); + const accessToken = localStorage.getItem('accessToken'); + const roleType = localStorage.getItem('roleType'); + + return { + memberId: memberId ? (isNaN(memberId) ? memberId : Number(memberId)) : null, + nickname: nickname || null, + accessToken: accessToken || null, + roleType: roleType || null, + }; + } catch (error) { + console.error('localStorage에서 사용자 정보 로드 실패:', error); + return { + memberId: null, + nickname: null, + accessToken: null, + roleType: null, + }; + } +}; + export const useUserStore = create((set) => ({ - memberId: null, - nickname: null, - accessToken: null, + ...loadUserFromStorage(), - setUser: (userData) => set({ - memberId: userData.memberId, - nickname: userData.nickname, - roleType: userData.roleType, - }), + setUser: (userData) => { + set({ + memberId: userData.memberId, + nickname: userData.nickname, + roleType: userData.roleType, + }); + // localStorage에도 저장 + if (userData.memberId) localStorage.setItem('memberId', userData.memberId); + if (userData.nickname) localStorage.setItem('nickname', userData.nickname); + if (userData.roleType) localStorage.setItem('roleType', userData.roleType); + }, - setAccessToken: (token) => set({ - accessToken: token, - }), + setAccessToken: (token) => { + set({ accessToken: token }); + if (token) localStorage.setItem('accessToken', token); + }, - clearUser: () => set({ - memberId: null, - nickname: null, - accessToken: null, - roleType: null, - }), + clearUser: () => { + set({ + memberId: null, + nickname: null, + accessToken: null, + roleType: null, + }); + // localStorage에서도 제거 + localStorage.removeItem('memberId'); + localStorage.removeItem('nickname'); + localStorage.removeItem('accessToken'); + localStorage.removeItem('roleType'); + }, })); \ No newline at end of file