32 lines
907 B
TypeScript
32 lines
907 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/',
|
|
baseURL: 'http://localhost:8082/api',
|
|
});
|
|
|
|
// Устанавливаем токен из 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;
|