Я испытываю странную ошибку или ошибку в своем коде. Я установил auth api на сервере узла, используя паспортные данные как мое промежуточное программное обеспечение и паспорт-jwt в качестве своей стратегии.Узел паспорт-jwt извлечения неправильного пользователя из токена
Моя установка паспорта выглядит следующим образом
//add jwt strategy to passport
var JwtStrategy = require('passport-jwt').Strategy;
var ExtractJwt = require('passport-jwt').ExtractJwt;
var User = require('../models/user');
var configDB = require('../config/database');
module.exports = function(passport) {
var opts = {};
opts.secretOrKey = configDB.secret;
opts.jwtFromRequest = ExtractJwt.fromAuthHeader();
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
//find user with give jwt payload id
User.findOne({
id: jwt_payload.id
}, function(err, user) {
if(err) {
return done(err, false);
}
if(user) {
done(null, user);
} else {
done(null, false);
}
});
}));
};
тогда, мой защищенный маршрут:
apiRoutes.get('/account', passport.authenticate('jwt', {session: false}), function(req, res) {
console.log(req.user.nickname); //returns user1 no matter what JWT I supply with request
console.log(jwt.decode(getToken(req.headers), configDB.secret)).nickname; //decodes user from token correctly
..do other stuff
});
Почему же паспорт устанавливает req.user с тем же пользователем каждый раз, независимо от того, что Токен я поставляю в Заголовок авторизации? Благодаря
Спасибо, не было на самом деле ошибкой, я просто не понял, что мангуста генерирует идентификаторы модели как «_id», а не «id» ... Но в любом случае некоторые действительно полезные данные в полезной нагрузке проведут проверку в следующий раз Я работаю с ним спасибо :) – BlueBallPanda