Сброс токена в ресурсе vue - Vue2

В файле main.js я установил ресурс vue для использования заголовков аутентификации при каждом запросе:

Vue.use( VueResource )

let auth = validToken()
if( auth ) {
  Vue.http.interceptors.push( ( request, next ) => {
    request.headers.set( 'Authorization', auth.token )
    request.headers.set( 'Accept', 'application/json' )
    next()
  } )
}

И в выходе из системы, я пытаюсь удалить заголовок таким образом,

resetVueRsr: () => {
  this.$http.headers.common['Authorization'] = null
}

И когда пользователь входит в систему, затем сбрасывает новый токен в глобальный ресурс Vue, как это,

this.$http.headers.common['Authorization'] = res.body.token

Но как только новый пользователь регистрируется на сайте, ресурс vue по-прежнему отправляет предыдущий токен с каждым запросом. Что мне здесь не хватает?

0 ответов

Я проверил источник, и похоже, что все определенные перехватчики добавляются в некоторый внутренний массив, а затем используются для запросов.

Согласно вашему образцу кода вы каким-то образом получаете объект с начальным токеном, а затем передаете его внутри своей стрелочной функции, поэтому JS создает закрытие для этого, чтобы сделать этот объект доступным внутри функции, и я думаю, что время жизни этого закрытия равно время жизни вашего приложения. Я предполагаю, что у вас есть своего рода СПА.

Также из источника похоже, что перехватчики не связаны с общими заголовками, поэтому ваш способ удаления и сброса не изменит ваш перехватчик.

Другие вопросы по тегам