Como posso enviar um cabeçalho de autenticação com um token via axios.js? Tentei algumas coisas sem sucesso, por exemplo:
const header = `Authorization: Bearer ${token}`;
return axios.get(URLConstants.USER_URL, { headers: { header } });
Me dá este erro:
XMLHttpRequest cannot load http://localhost:8000/accounts/user/. Request header field header is not allowed by Access-Control-Allow-Headers in preflight response.
Consegui fazer funcionar definindo o padrão global, mas acho que essa não é a melhor ideia para uma única solicitação:
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
Atualização:
A resposta de Cole me ajudou a encontrar o problema. Estou usando o middleware django-cors-headers que já gerencia o cabeçalho de autorização por padrão.
Mas eu fui capaz de entender a mensagem de erro e corrigi um erro no meu código de solicitação do axios, que deve ser parecido com este
return axios.get(URLConstants.USER_URL, { headers: { Authorization: `Bearer ${data.token}` } });
return axios.get(URLConstants.USER_URL, { headers: { Authorization: `Bearer ${data.token}` } });