@kirill-93

Обработка для всех запросов в axios?

Подскажите, пожалуйста, как повесить обработчик для всех запросов в axios?
У меня приложение на vuejs, авторизация через токен. Мне нужно в одном месте повесить обработчик, что если пришел с сервера ответ 401, то пользователя нужно разлогинить.
Сейчас в main.js настройки такие:
import axios from 'axios';

axios.defaults.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('token');

Vue.prototype.$axios = axios;

Помогите, пожалуйста.
  • Вопрос задан
  • 1425 просмотров
Решения вопроса 1
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
используй интерцепторы, в доке есть пример для response interceptor, там и обрабатывай ошибку
axios.interceptors.response.use((response) => {
    return response;
}, function (error) {
    // Do something with response error
    if (error.response.status === 401) {
        console.log('unauthorized, logging out ...');
        auth.logout();
        router.replace('/auth/login');
    }
    return Promise.reject(error.response);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы