[TIL] 팀 : 아웃소싱 프로젝트

최유나·2024년 9월 26일
0

TIL

목록 보기
29/34

import { create } from 'zustand';
import { persist } from 'zustand/middleware';
// import { supabase } from '../instance/supabase';

const useAuthStore = create(
  persist(
    (set) => ({
      // 사용자 정보와 상태
      user: null,
      accessToken: null,
      avatar: null,
      nickname: null,
      success: false,
      userId: null,
      isLoggedIn: false,

      // 사용자 상태 설정 메서드
      setUser: (user) => set({ user }),
      setAccessToken: (accessToken) => set({ accessToken }),
      setAvatar: (avatar) => set({ avatar }),
      setNickname: (nickname) => set({ nickname }),
      setSuccess: (success) => set({ success }),
      setUserId: (userId) => set({ userId }),
      setIsLoggedIn: (isLoggedIn) => set({ isLoggedIn }),

      // 사용자 인증 정보 설정
        set({
          accessToken: accessToken,
          nickname: nickname,
          userId: userId,
          avatar: avatar,
          isLoggedIn: true,
          success: true
        });
      },

      // 사용자 인증 정보 초기화
      clearAuth: () => {
        set({
          user: null,
          accessToken: null,
          avatar: null,
          nickname: null,
          success: false,
          userId: null,
          isLoggedIn: false
        });     
      },
     }),
    {
      name: 'authStorage',
      getStorage: () => localStorage
    }
  )
);

export default useAuthStore;

0개의 댓글

관련 채용 정보