you_are_enot
@you_are_enot
Пограммист любитель

Как во vuejs добавить плагин по аналогии с nuxt?

Нашёл пример плагина для 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;
  • Вопрос задан
  • 56 просмотров
Пригласить эксперта
Ответы на вопрос 1
@loonny
На странице документации VueJS - Плагины, подробно написано
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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