import axios from 'axios'; const api = axios.create({ baseURL: import.meta.env.VITE_API_URL, }); // 1. Interceptor de REQUEST: Pega el token api.interceptors.request.use((config) => { const token = localStorage.getItem('token'); if (token) { config.headers.Authorization = `Bearer ${token}`; } return config; }); // 2. Interceptor de RESPONSE: Maneja errores globales (como 401) api.interceptors.response.use( (response) => { return response; }, (error) => { // Si el error es 401 (Token vencido o inválido) if (error.response && error.response.status === 401) { console.warn("Sesión de caja expirada. Redirigiendo..."); // Limpiar almacenamiento localStorage.removeItem('token'); localStorage.removeItem('user'); // Redirigir al Login (forzado fuera de React Router para limpiar estado) if (window.location.pathname !== '/login') { window.location.href = '/login'; } } return Promise.reject(error); } ); export default api;