- 새로고침 시 로그인 해제 오류 해결 및 자동로그인 기능 구현
This commit is contained in:
geonhee-min
2025-12-03 12:59:08 +09:00
parent 3859099074
commit e3091494b1
4 changed files with 108 additions and 39 deletions

View File

@@ -1,5 +1,6 @@
import type { AuthData } from '@/data/AuthData';
import { create } from 'zustand';
import { createJSONStorage, persist } from 'zustand/middleware';
interface AuthStoreProps {
authData: AuthData | undefined;
@@ -7,17 +8,23 @@ interface AuthStoreProps {
logout: () => void;
}
export const useAuthStore = create<AuthStoreProps>((set) => ({
authData: undefined,
login: (data: AuthData) => {
set({ authData: data });
Object.entries(data)
.forEach((entry) => {
localStorage.setItem(entry[0], entry[1]);
})
},
logout: () => {
set({ authData: undefined });
localStorage.clear();
}
}));
const storage = sessionStorage;
export const useAuthStore = create<AuthStoreProps>()(
persist(
(set) => ({
authData: undefined,
login: (data: AuthData) => {
set({ authData: data });
},
logout: () => {
localStorage.setItem('autoLogin', 'false');
localStorage.removeItem('auth-storage');
set({ authData: undefined });
}
}),
{
name: 'auth-storage',
storage: createJSONStorage(() => storage)
}
)
);