import axios from 'axios' import { useAuthStore } from '@/stores/auth' import router from '@/router' const api = axios.create({ baseURL: '/api', headers: { 'Content-Type': 'application/json' } }) api.interceptors.request.use(config => { const authStore = useAuthStore() if (authStore.token) { config.headers.Authorization = `Bearer ${authStore.token}` } return config }) api.interceptors.response.use( response => response, async error => { if (error.response?.status === 401) { const authStore = useAuthStore() try { await authStore.refreshToken() error.config.headers.Authorization = `Bearer ${authStore.token}` return api(error.config) } catch { authStore.logout() router.push('/login') } } return Promise.reject(error) } ) export default api