Files
luminic-front/src/services/axiosSetup.ts
2024-11-08 10:05:00 +03:00

32 lines
913 B
TypeScript

// src/services/axiosSetup.ts
import axios from 'axios';
import { useRouter } from 'vue-router';
// Создаем экземпляр axios
const api = axios.create({
baseURL: 'https://luminic.space/api/v1',
// baseURL: 'http://localhost:8000/api/v1',
});
// Устанавливаем токен из localStorage при каждом запуске
const token = localStorage.getItem('token');
if (token) {
api.defaults.headers.common['Authorization'] = `Bearer ${token}`;
}
// Перехватчик ответа для проверки 401 статуса
api.interceptors.response.use(
(response) => response,
(error) => {
if (error.response && error.response.status === 401) {
localStorage.removeItem('token');
const router = useRouter();
router.push('/login');
}
return Promise.reject(error);
}
);
export default api;