【问题标题】:passport jwt verify callback not called护照 jwt 验证回调未调用
【发布时间】:2016-12-14 11:31:45
【问题描述】:

我正在使用 passport-jwt 包进行简单的身份验证,令牌是由 jsonwebtoken 生成的。 但问题是永远不会调用验证回调。

这是我的 passport.js 代码。

var JwtStrategy = require('passport-jwt').Strategy;
var User = require('../app/models/user');
var config = require('../config/database'); 
var opts = {};
opts.jwtFromRequest = function(req) {
    var token = null;
    if (req && req.headers) {
        token = req.headers.authorization;
    }
    return token;
};
opts.secretOrKey = config.secret;
console.log(opts);
module.exports = function(passport) {
    passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
        User.findOne({_id: jwt_payload._doc._id}, function(err, user) {
            if (err) {
              return done(err, false);
            }
            if (user) {
                done(null, user);
            } else {
              done(null, false);
            }
        });

    }));
};

希望收到您的来信。

谢谢

【问题讨论】:

  • 路由器配置就像示例一样常规: router.route('/timeRecords') .post(passport.authenticate('jwt', { session: false}),timeRecordController.postTimeRecords) .get( passport.authenticate('jwt', { session: false}),timeRecordController.getTimeRecords);

标签: node.js restful-authentication passport.js


【解决方案1】:

问题是您应该添加“JWT”(JWT 和原始 jwt 签名前的空格)。请查看本教程http://blog.slatepeak.com/building-a-basic-restful-api-for-a-chat-system/ 约书亚寻求帮助。 顺便说一句,请确保您是否需要 findOne 中的“位置”。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 2020-09-21
  • 2017-10-05
  • 2018-02-13
  • 2016-11-11
  • 2015-12-13
  • 2021-03-27
相关资源
最近更新 更多