/
zemars
/
it-dashboard
Обзор
Документация
Войти
/
zemars
/
it-dashboard
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
frontend/src/api/axiosInstance.js
44 строки
1 KB
Дмитрий
fix(docs): актуализировать risk_log и docstring init_db
26 май 2026, 22:07
26 май 2026, 22:07
9981d43
Код
Авторство
О чём код?
// Автор: Максим Учайкин + Никита Синадский // Axios-инстанс с interceptor'ом для JWT-токена и обработкой 401. import axios from 'axios' const BASE_URL = import.meta.env.VITE_API_URL || '' const api = axios.create({ baseURL: `${BASE_URL}/api/v1`, timeout: 15000, }) // --- interceptor токена --- // Никита Синадский: достаём токен из памяти AuthContext через // глобальную ссылку — это позволяет axios работать без знания о React. let _authToken = null let _onUnauthorized = null export function setAuthToken(token) { _authToken = token } export function setUnauthorizedHandler(handler) { _onUnauthorized = handler } api.interceptors.request.use((config) => { if (_authToken) { config.headers.Authorization = `Bearer ${_authToken}` } return config }) api.interceptors.response.use( (response) => response, (error) => { if (error.response && error.response.status === 401) { // токен просрочен / невалиден — чистим и редиректим if (_onUnauthorized) _onUnauthorized() } return Promise.reject(error) } ) export default api