import axios from 'axios'; import AuthService from '@/services/auth'; const http = axios.create({ baseURL: import.meta.env.VITE_DJANGO_BASE_URL, headers: { 'Content-Type': 'application/json', }, }); http.interceptors.request.use( config => { const token = AuthService.getAccessToken(); if (token) { config.headers.Authorization = `Bearer ${token}`; } return config; }, error => Promise.reject(error) ); http.interceptors.response.use( response => response, async error => { const originalRequest = error.config; if (error.response?.status === 401 && !originalRequest._retry) { originalRequest._retry = true; try { const newAccess = await AuthService.refresh(); originalRequest.headers.Authorization = `Bearer ${newAccess}`; return http.request(originalRequest); } catch (refreshError) { AuthService.logout(); window.location.href = '/autenticarse'; return Promise.reject(refreshError); } } return Promise.reject(error); } ); export default http;