Я новичок в nodejs. Мне нужно создать и аутентификации с помощью nodejs. Здесь я нашел несколько ответов, но они также использовали старую версию. Здесь я использую эти версии
Я использовал этот код для создания файла passport.js в моем приложении узла.
const JwtStrategy = require('passport-jwt').Strategy,
ExtractJwt = require('passport-jwt').ExtractJwt;
const config = require('./db');
const User = require('./models/user');
const opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretOrKey = config.secret;
module.exports = (passport)=>{
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
User.findUserbyId({_id: jwt_payload._doc._id}, function(err, user) {
if (err) {
return done(err, false);
}
if (user) {
return done(null, user);
} else {
return done(null, false);
}
});
}));
};
И я использовал этот метод маршрутов для создания маршрута с Аутентификацией.
router.post('/profile',
passport.authenticate('jwt'),{ session: false },
(req, res)=> {
res.json({user:req.user});
});
Я использовал почтальон для создания токена и проверки подлинности.
Я не могу понять, почему это неправильно. Метод findUserById является следующим
module.exports.findUserbyId = (id, callback)=>{
User.findOne(id, callback);
}
В чем проблема в моем коде? Почему это каждый раз дает
Несанкционированный
в моем приложении почтальона.