nex_docus/frontend/src/stores/userStore.js

35 lines
735 B
JavaScript

/**
* 用户状态管理 Store
*/
import { create } from 'zustand'
import { persist, createJSONStorage } from 'zustand/middleware'
import { clearAuthStorage } from '@/utils/authStorage'
const useUserStore = create(
persist(
(set) => ({
user: null,
token: null,
setUser: (user) => set({ user }),
setToken: (token) => set({ token }),
logout: () => {
clearAuthStorage()
set({ user: null, token: null })
},
isAuthenticated: () => {
const state = useUserStore.getState()
return !!state.token && !!state.user
},
}),
{
name: 'user-storage',
storage: createJSONStorage(() => localStorage),
}
)
)
export default useUserStore