我真的不想问这个问题,因为我可以看到过去有很多其他问题,但是我已经浪费了很多时间,以前遇到的所有问题都没有答案。
尝试使用JWT时,我总是返回Unauthorized
。
所请求的有效负载甚至返回,并且我能够在系统中找到用户并通过控制台对其进行登录。...所以我不确定这在哪里或为什么失败。
有问题的功能
passport.use(new JWTStrategy({
jwtFromRequest: ExtractJWT.fromAuthHeaderAsBearerToken(),
secretOrKey: process.env.JWT_SECRET
}, function(jwtPayload, done){
const o_id = new ObjectId(jwtPayload._id);
console.log('payload received', jwtPayload);
return User.findOne({"_id" : o_id}, (err, user) => {
console.log("user: ", user) // < --- this is logging out fine
if(user){
return done(null, false)
} else {
return done(null, false)
}
if( err ){
return done(err, false)
}
})
}))
我尝试过:
fromAuthHeaderWithScheme('jwt')
和
fromAuthHeaderWithScheme('bearer')
也是
我尝试使用bearer <Token>
,JWT <token>
,BEARER <token>
和jwt <token>
来授权令牌。
我想进一步了解它,我不明白为什么我的用户返回控制台日志有效,但是尽管显示了所有信息,我仍然返回未经授权的响应。
我觉得我真的很想念一些东西,但是看不到它是什么。请帮忙。