[英]Passport jwt returns unauthorized with status code 401
护照.js
module.exports = (passport) => {
passport.use(new LocalStrategy({
usernameField: 'username',
passwordField: 'password'
},
(username, password, done) => {
user.findOne(({ username: username }), async (err, user) => {
if (err) { return done(err); }
if (!user) { return done(null, false); }
const cpassword = await bcrypt.compare(password, user.password);
if (!cpassword) { return done(null, false); }
console.log(user._id)
const token = jwt.sign(
{
id: user._id,
username: user.username
},
"shubham"
);
adminRecords = {
token: token
}
return done(null, user, adminRecords);
});
}
));
passport.use(new JwtStrategy({
jwtFromRequest: ExtractJWT.fromAuthHeaderAsBearerToken(),
secretOrKey : 'key'
}, function(jwt_payload, done) {
console.log('1')
user.findOne({id: jwt_payload.sub}, function(err, user) {
if (err) {
return done(err, false);
}
if (user) {
return done(null, user);
} else {
return done(null, false);
// or you could create a new account
}
});
}));
};
passport.serializeUser(function (user, done) {
done(null, user)
})
passport.deserializeUser(function (id, done) {
user.find(id, function (err, user) {
done(err, user)
});
});
路由.js
router.post('/profile', passport.authenticate('jwt', { session: false }),
function(req, res) {
console.log('1')
res.send(req.user.profile);
}
);
我正在尝试 passport-jwt 策略,它在生成令牌时返回未授权状态码 401。 我正在使用令牌 x-access-token=jwtToken 但它返回未经授权。
我可以尝试调试什么?
尝试在 header 中设置
授权:Bearer TOKEN
你应该在令牌和不记名之间有空间
替换 jwtFromRequest: 如下并尝试
jwtFromRequest:ExtractJwt.fromAuthHeaderWithScheme('JWT');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.