@olegcvasov

Перехватчик vue js срабатывает после запроса. В чем проблема?

Хочу отлавливать 401 ошибку, чтобы обновлять токен авторизации. Использую везде для запроса Axios. 401 ошибка отлавливается, но так же консоль выводится только после вызова метода. Из-за этого когда я вызываю me() возвращается 401 ошибка и только потом обрабатывается запрос

Мой файл main.js
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store/index'
import Axios from 'axios'
import {getCookie} from "./helpers/core/cookies"

/**
 * Это перехватчик, проверяет валидный ли токен.
 * Если возвращает сервер 401 код - делаем запрос на обновление токена
 * если токен не обновился, то отправляем пользователя заново авторизоваться
 */
Axios.interceptors.response.use(response => response, error => {
  if(error.response.status === 401) {
    console.log('Истек')
    // store.dispatch('Auth/updateToken');
  }
  return error;
});

Vue.prototype.$http = Axios;

/**
 * Предупреждение о разработке
 * @type {boolean}
 */
Vue.config.productionTip = false

/**
 * Берем токен из куки и записываем в header axios'a, чтобы все рапросы с токеном были
 */
const token = getCookie('token')
if (token) {
  Vue.prototype.$http.defaults.headers.common['Authorization'] =  'Bearer ' + token
}

// document.title = 'Region'


new Vue({
  router,
  store,
  render: h => h(App),
}).$mount('#app')
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект