我遇到了一个问题,它总是在未经授权的情况下返回给我.当我将标题授权设置为收到的令牌时.它返回. Unauthorized . router.get('/dashboard', passport.authenticate('jwt', {session: false}), (req, res) = { res
Unauthorized
.
router.get('/dashboard', passport.authenticate('jwt', {session: false}), (req, res) => {
res.json('It worked: User ID is: ' + req.user._id);
});
.
var jwtOptions = {
jwtFromRequest: ExtractJwt.fromAuthHeader(),
secretOrKey: config.jwt.secretOrKey
//issuer: config.jwt.issuer,
//audience: config.jwt.audience,
};
passport.use(new JWTStrategy(jwtOptions, (jwt_payload, done) => {
User.findOne({id: jwt_payload.id}, (err, user) => {
if (err) {
return done(err, false);
}
if (!user) {
return done(null, false);
}
return done(null, user);
});
}));
你必须改变这些事情:
1)你必须改变
jwtFromRequest:ExtractJwt.fromAuthHeader(),到jwtFromRequest:ExtractJwt.fromAuthHeaderAsBearerToken(),
2)设置标题:
授权:承载{token}
3)jwt_payload._id更改为jwt_payload._doc._id
