diff --git a/src/services/axiosSetup.ts b/src/services/axiosSetup.ts new file mode 100644 index 0000000..1bedd16 --- /dev/null +++ b/src/services/axiosSetup.ts @@ -0,0 +1,31 @@ +// 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;