Passport JWT始终返回“未经授权”

时间:2018-06-20 16:23:26

标签: node.js jwt passport.js

我真的不想问这个问题,因为我可以看到过去有很多其他问题,但是我已经浪费了很多时间,以前遇到的所有问题都没有答案。

尝试使用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>来授权令牌。

我想进一步了解它,我不明白为什么我的用户返回控制台日志有效,但是尽管显示了所有信息,我仍然返回未经授权的响应。

我觉得我真的很想念一些东西,但是看不到它是什么。请帮忙。

0 个答案:

没有答案