Библиотека axios позволяет перехватывать все запросы и ответы и применять к ним определенную программную логику. Делается следующим образом.
// Создаем экземпляр axios.
// Можно и не создавать, но тогда все последующие методы
// нужно применять к глобальному объекту axios.
const instance = axios.create();
// Указываем адрес бэкенда
instance.defaults.baseURL = backendURL;
// Указываем заголовки по умолчанию
instance.defaults.headers.post['Content-Type'] = 'application/json';
// Перехватчик для запросов
// Добавляем данные для авторизации с помощью перехватчика (interceptors)
instance.interceptors.request.use(config => {
config.auth = {
username: vue.$store.getters.token,
password: 'qwe'
};
return config;
});
// Перехватчик для ответов
// Проверяем ответ на ошибку авторизации и показываем пользователю форму логина
instance.interceptors.response.use(
// Обработчик для успешного случая; просто пропускаем ответ дальше
res => {
return res;
},
// Обработчик для ошибки
error => {
if (error.response.status === 401) {
vue.$store.commit('signOut');
}
return Promise.reject(error);
}
);