import axios from 'axios'; // Создаем экземпляр axios с базовыми настройками const api = axios.create({ baseURL: process.env.NEXT_PUBLIC_API_URL || 'http://127.0.0.1:8000/api', headers: { 'Content-Type': 'application/json', }, }); // Перехватчик запросов для добавления токена авторизации api.interceptors.request.use( (config) => { const token = localStorage.getItem('token'); if (token) { config.headers.Authorization = `Bearer ${token}`; } return config; }, (error) => Promise.reject(error) ); // Перехватчик ответов для обработки ошибок api.interceptors.response.use( (response) => response, async (error) => { const originalRequest = error.config; // Если ошибка 401 (неавторизован) и это не повторный запрос if (error.response.status === 401 && !originalRequest._retry) { originalRequest._retry = true; // Здесь можно добавить логику обновления токена // Например, перенаправление на страницу входа if (typeof window !== 'undefined') { localStorage.removeItem('token'); window.location.href = '/login'; } } return Promise.reject(error); } ); export default api;