import { defineStore } from 'pinia' import { ref } from 'vue' import { login as loginApi, getCurrentUser } from '@/api/auth' import router from '@/router' export const useUserStore = defineStore('user', () => { const token = ref(localStorage.getItem('token') || '') const userInfo = ref(null) // 登录 async function login(username, password) { try { const res = await loginApi({ username, password }) token.value = res.access_token localStorage.setItem('token', res.access_token) return true } catch (error) { return false } } // 获取用户信息 async function getUserInfo() { try { const res = await getCurrentUser() userInfo.value = res.data return res.data } catch (error) { return null } } // 登出 function logout() { token.value = '' userInfo.value = null localStorage.removeItem('token') router.push('/login') } return { token, userInfo, login, getUserInfo, logout } })