Заголовки авторизации Axios не определены при использовании Vue.JS и Node.JS - PullRequest
0 голосов
/ 28 июня 2018

У меня проблема при настройке заголовков авторизации для моего экземпляра axios.

Вот код в моем приложении Vue.JS, работающем на http://localhost:8080:

axios.defaults.headers.common['Authorization'] = 'Bearer ' + token

axios.get(`/users/email/${myemail}`).then(response => {
   var user = response.data.result[0]
   ...
});

А вот пример кода моего сервера Node.JS, работающего на http://localhost:3000:

// Add headers
app.use((req, res, next) => {  
  res.setHeader('Access-Control-Allow-Origin', '*');

  res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');

  res.setHeader('Access-Control-Allow-Headers', 'Content-type, Accept, X-Access-Token, X-Key, Authorization');

  res.setHeader('Access-Control-Allow-Credentials', true);

  next();
});

А:

app.use((req, res, next) => {
  var token = req.headers['authorization'];
  if (token) {
    jwt.verify(token, "mysecret", (err, decod) => {
      if (err) {
        res.status(403).send({message: "Access forbidden, wrong token."});
      } else {
        req.decoded = decod;
        next();
      }
    });
  } else {
    res.status(403).send({message: "Access forbidden, no token provided."});
  }
});

req.headers ['authorization'] всегда неопределен ... Но когда я выполняю запрос get через Postman, заголовок Authorization правильно устанавливается, и я могу получить токен на моем сервере Node.JS.

Я не понимаю, где моя ошибка ... Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 28 июня 2018

Ваш ключ заголовка axios - «Авторизация», но в узле вы получаете «Авторизация».

Ключ объекта javascript чувствителен к регистру: D

...