Vuejs не отправляет токен авторизации на сервер - PullRequest
0 голосов
/ 19 сентября 2018

Я не могу получить доступ к маршрутам, защищенным API, потому что VueJS не отправляет токен авторизации на сервер nodejs.Первоначально это работало просто отлично, но оно просто перестало работать.Вход в систему и хранение токена во внешнем интерфейсе работает должным образом.Доступ к тем же маршрутам через почтальона с токеном работает просто отлично.Это main.js

Vue.axios.defaults.headers.common['x-access-token']=localStorage.getItem('token')
Vue.axios.defaults.baseURL = 'http://localhost:3000/api/';

. Делаем так: console.log (Vue.axios.defaults.headers.common) печатает объект с x-access-token.Это четкое указание на то, что токен хранится в локальном хранилище и успешно передается в main.js.Проблема в том, что токен не отправляется на сервер с http-запросами **.Мое промежуточное ПО Auth.js **

const jwt = require('jsonwebtoken');
var env       = process.env.NODE_ENV || 'development';
var config = require(__dirname + '/../config/config.json')[env];

module.exports = (req, res, next)=>{

    const token = req.headers['x-access-token'];
    if(!token){
        return res.status(400).json({message:'No token provided!'})
    }

try{
    const decoded = jwt.verify(token,config.secret);
req.userData = decoded;
console.log(decoded)
return next();
}
catch(error){
return res.status(401).json({message:'Auth Failed!'});
}
};

Ответ сервера:

`No Token Provided`!

Я включил следующее в app.js для решения проблемы CORS, и я неНе думаю, что это связано с CORS.

const cors = require('cors');
app.use(cors()); // Enable CORS

Любая помощь, могу ли я сделать что-то не так в моей конфигурации.

1 Ответ

0 голосов
/ 20 сентября 2018

Если сервер ожидает токен-носитель, его можно передать в Authorization Header, см. Пример кода ниже, который извлекает токен из локального хранилища и устанавливает его в заголовок по умолчанию.

const token = localStorage.getItem('token')

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