护照-JWT,不是刺痛错误,但不是身份验证.甚至不会安慰.log



我正在尝试使用护照-jwt,快递等进行身份验证。我目前没有得到身份验证,但最麻烦的是我似乎无法在功能内部安慰.log......什么也没发生。

这是完整的护照.js

const JwtStrategy = require('passport-jwt').Strategy;
const ExtractJwt = require('passport-jwt').ExtractJwt;
const User = require('../models/user');
const config = require('../config/database');
module.exports = function(passport) {
    let opts = {};
    opts.jwtFromRequest = ExtractJwt.fromHeader();
    opts.secretOrKey = config.secret;
    console.log(opts); // THIS SHOW PRIORE TO THE EXPRESS LISTEN MSG!
    passport.use(new JwtStrategy(opts, (jwt_payload, done) => {
        console.log(jwt_payload); // THIS DOESNT EVER SHOW!
        User.getUserById(jwt_payload._id, (err, user) => {
            if (err) {
                return done(err, false);
            }
            if (user) {
                return done(null, user);
            } else {
                return done(null, false);
                // or create a new account
            }
        });
    }));
}

用户.js

const express = require('express');
const router = express.Router();
const passport = require('passport');
const jwt = require('jsonwebtoken');
const config = require('../config/database');
const User = require('../models/user');
...code removed for brevity...
router.get('/profile', passport.authenticate('jwt', {session:false}), (req,res,next) => {
    res.json({user: req.user});
});

module.exports = router;

关于如何"看到"我的有效载荷以便我可以找到发生了什么的任何想法?

我使用邮递员点击"http://localhost:3000/users/profile"传递标头"身份验证"和令牌"JWT 我的令牌...">

谢谢 - 我意识到这是一个有点奇怪的要求...我遵循的教程表明我应该能够看到有效负载,即使我没有经过身份验证......所以我有点不知道该去哪里。

呃 - 这是我第二次在我问完后继续插入某些东西,只是为了找到解决方案。 显然,我使用的版本比示例更新,ExtractJwt.fromHeader(( 应该是 .fromAuthHeaderWithScheme("jwt"(。令人沮丧的是,它没有出错,也没有达到足够的进度来记录,但是 - 现在我得到了我的控制台日志,可以看到我的有效载荷......我希望这对其他人有所帮助。(我对 js libs 的速度和更改感到沮丧,这些更改破坏了向后兼容性,并且没有清楚地记录路径,我理解为什么会发生这种情况,但它使学习和故障排除非常令人沮丧(

最新更新