Перехватчик Axios не работает при расширении плагина Nuxt Auth

У меня есть такой плагин Axios:

export default function ({ $axios, $auth }) {
  $axios.interceptors.request.use((req) => {
    req.data = {
      data: {
        // some data
      }
    }
    console.log('auth: ', $auth)

    return req
  })

  $axios.defaults.headers['Content-Type'] = 'application/vnd.api+json'
  $axios.defaults.headers.Accept = 'application/vnd.api+json'
}

В моем nuxt.config у меня есть:

plugins: [
  { mode: 'client', src: '~/plugins/axios' }
],

Когда я запускаю свой запрос, я получаю auth undefined.

Поэтому я пытаюсь расширить плагин Nuxt Auth:

auth.js:

export default function ({ $auth }) {
  if ($auth.loggedIn) {
    console.log('loggin in')
  } else {
    console.log('not loggin in')
  }
}

nuxt.config.js:

plugins: [
  // { mode: 'client', src: '~/plugins/axios' }
],

auth: {
  plugins: [{ src: '~/plugins/axios', ssr: true }, '~/plugins/auth.js'],
  // strategies etc..
}

Поэтому я комментирую плагин Axios и добавляю его в раздел аутентификации, как показано в документации Nuxt Auth. Когда я запускаю запрос, он не регистрирует console.log('auth: ', $auth) пропуск всего $axios.interceptors.request.use((req) => {


person Peter Boomsma    schedule 22.01.2021    source источник


Ответы (1)


наконец, у меня есть шанс помочь кому-то выйти из XD # только что зарегистрировавшегося. Вот код, который я использую для доступа к аутентификации из перехватчика axios

nuxt.config.js

auth: {
  plugins: [{ src: '~/plugins/axios.js', ssr: true }, '~/plugins/auth.js']
}

auth.js

export default function ({ $auth }) {
    if ($auth.loggedIn) {
        return true
    } else {
        return false
    }
}

axios.js

export default function ({ $axios, redirect, $auth }) {
  $axios.onRequest(config => {
    console.log('Making request to ' + config.url)
  })

  $axios.onError(error => {
    const code = parseInt(error.response && error.response.status)
    if (code === 401) {
      if ($auth.loggedIn) {
        $auth.logout()
      }
      redirect('/login');
    }
    if (code === 404) {
      redirect('/404')
    }
  })
}
person TheBulk    schedule 04.02.2021