Нашёл пример плагина для nuxt.js
export default function ({ $axios, redirect, store }) {
$axios.interceptors.request.use(request => {
if (store.getters['auth/isAuthenticated'] &&
!request.headers.common.Authorization
) {
const token = store.getters['auth/getToken']
request.headers.common.Authorization = `Bearer ${token}`
}
return request
})
$axios.onError(error => {
if (error.response) {
if (error.response.status === 401) {
redirect('/admin/login?message=session')
store.dispatch('auth/logout')
}
if (error.response.status === 500) {
console.error('server internal error')
}
}
})
}
Как во vuejs подключить axios чтобы так же реализовать плагин? Я пробовал сделать вот так, но линтер ругается на циклические зависимости.
import axios from 'axios';
import store from '@/store';
const client = axios.create({
baseURL: 'http://localhost:3000',
timeout: 5000,
});
client.interceptors.request.use(request => {
if (store.getters['auth/isAuth'] && !request.headers.common.Authorization) {
const token = store.getters['auth/getToken'];
request.headers.common.Authorization = `Bearer ${token}`;
}
return request;
});
export default client;