import axios from "axios"; const api = axios.create({ baseURL: import.meta.env.VITE_API_BASE_URL, timeout: 10000, headers: { "Content-Type": "application/json", }, }); // 请求拦截器 — 注入 JWT token api.interceptors.request.use( (config) => { const token = localStorage.getItem("track_admin_token"); if (token) { config.headers.Authorization = `Bearer ${token}`; } return config; }, (error) => Promise.reject(error), ); // 响应拦截器 — 统一错误处理 api.interceptors.response.use( (response) => response, (error) => { if (error.response?.status === 401) { // Token 过期或无效 → 清除并跳转登录 localStorage.removeItem("track_admin_token"); localStorage.removeItem("track_admin_user"); if (window.location.pathname.startsWith("/admin")) { window.location.href = "/admin/login"; } } return Promise.reject(error); }, ); export default api;