import { defineStore } from 'pinia' import api from '../services/api' export const useAuthStore = defineStore('auth', { state: () => ({ user: null, token: localStorage.getItem('access_token') || null, isAuthenticated: !!localStorage.getItem('access_token') }), actions: { async login(credentials) { try { const response = await api.post('/auth/login', credentials) this.token = response.data.access_token this.user = response.data.user this.isAuthenticated = true localStorage.setItem('access_token', this.token) return { success: true } } catch (error) { return { success: false, error: error.message } } }, async register(userData) { try { const response = await api.post('/auth/register', userData) // 注册后自动登录 return this.login({ username: userData.username, password: userData.password }) } catch (error) { return { success: false, error: error.message } } }, async logout() { try { await api.post('/auth/logout') } catch (error) { // 忽略错误 } this.token = null this.user = null this.isAuthenticated = false localStorage.removeItem('access_token') }, async fetchUser() { try { const response = await api.get('/auth/me') this.user = response.data return { success: true } } catch (error) { this.token = null this.isAuthenticated = false localStorage.removeItem('access_token') return { success: false } } } } })