簡體   English   中英

Passport jwt 返回未授權狀態碼 401

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM