护照jwt验证回调未调用

时间:2016-08-08 15:44:12

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

我使用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);
            }
        });

    }));
};

希望收到你的来信。

由于

1 个答案:

答案 0 :(得分:2)

问题是你应该添加' JWT'(JWT和原始jwt签名前的空格)。请查看本教程http://blog.slatepeak.com/building-a-basic-restful-api-for-a-chat-system/ 约书亚的帮助。 顺便说一下,如果你需要一个' where'你的findOne内部与否。