Сброс токена в ресурсе 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 создает закрытие для этого, чтобы сделать этот объект доступным внутри функции, и я думаю, что время жизни этого закрытия равно время жизни вашего приложения. Я предполагаю, что у вас есть своего рода СПА.
Также из источника похоже, что перехватчики не связаны с общими заголовками, поэтому ваш способ удаления и сброса не изменит ваш перехватчик.