护照 jwt 验证回调未调用

Posted

技术标签:

【中文标题】护照 jwt 验证回调未调用【英文标题】:passport jwt verify callback not called 【发布时间】: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); 【参考方案1】:

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

【讨论】:

谢谢。你救了我。事实上,我被困了好几天。你解决了我的问题。再次感谢。 用法说明如下:npmjs.com/package/passport-jwt#include-the-jwt-in-requests

以上是关于护照 jwt 验证回调未调用的主要内容,如果未能解决你的问题,请参考以下文章

护照-jwt 总是返回 401 未授权

节点快速通行证 (JWT) - 身份验证后回调

护照反序列化用户未在帆中调用

护照验证 jwt 没有响应

使用护照 jwt 进行身份验证

如何使用护照身份验证更新包含 jwt 的 cookie