interceptor vue-resource para cabeçalhos de autenticação
Estou tentando configurar um aplicativo com fachada Vuejs (modelo vue-cli webpack) para ficar em cima da minha API do Laravel.
Consigo obter uma resposta bem-sucedida da API com vue-resource, fornecendo o token de autenticação correto, por exemplo:
methods: {
getUser () {
this.$http.get('http://localhost:8000/api/user',
{
headers: {
'Authorization': 'Bearer eyJ0e.....etc',
'Accept': 'application/json'
}
}).then((response) => {
this.name = response.data.name
});
},
No entanto, agora estou tentando configurar interceptores para que o token de autenticação do usuário seja adicionado automaticamente a cada solicitação.
Com base no leia-me vue-resource, estou tentando isso no meumain.js
:
Vue.use(VueResource)
Vue.http.interceptors.push((request, next) => {
request.headers['Authorization'] = 'Bearer eyJ0e.....etc'
request.headers['Accept'] = 'application/json'
next()
})
E então, de volta ao meu componente, agora tenho:
this.$http.get('http://localhost:8000/api/user').then((response) => {
this.name = response.data.name
});
Problema:
Quando eu especifico os cabeçalhos noget
por si só, recebo uma resposta bem-sucedida, mas quando as passo pelointerceptor
Eu volto um401 Unauthorized
do servidor. Como posso corrigir isso para responder com êxito enquanto estiver usando o interceptador?
Editar: Quando uso dev-tools para visualizar as solicitações de saída, vejo o seguinte comportamento:
Ao fazer a solicitação, fornecendo os cabeçalhos para$http.get
, Eu faço um sucessoOPTIONS
pedido e, em seguida, um bem sucedidoGET
pedido com oAuthentication
cabeçalho fornecido aoGET
solicitação.
No entanto, quando eu removo os cabeçalhos do$http.get
diretamente e movê-los para o interceptador, apenas faço umaGET
pedido e oGET
não contém oAuthentication
cabeçalho, assim ele volta como um401 Unauthorized
.