import { create } from 'zustand' import { adminApi } from '../api/admin' interface AuthState { isAuthenticated: boolean adminInfo: any | null login: (username: string, password: string) => Promise logout: () => Promise checkAuth: () => void } export const useAuthStore = create((set) => ({ isAuthenticated: !!localStorage.getItem('admin_token'), adminInfo: null, login: async (username: string, password: string) => { try { const response = await adminApi.login(username, password) console.log('Login response:', response) // 响应拦截器返回的是 {code: 200, msg: "...", data: {token: "...", admin: {...}}} // 需要访问 response.data 来获取 token 和 admin const data = response?.data || response if (data?.token) { localStorage.setItem('admin_token', data.token) set({ isAuthenticated: true, adminInfo: data.admin, }) } else { throw new Error('登录失败:未获取到 token') } } catch (error) { console.error('Login error:', error) throw error } }, logout: async () => { try { await adminApi.logout() } catch (error) { console.error('Logout error:', error) } finally { localStorage.removeItem('admin_token') set({ isAuthenticated: false, adminInfo: null, }) } }, checkAuth: () => { const token = localStorage.getItem('admin_token') set({ isAuthenticated: !!token }) }, }))