node.js - Passport jwt 验证回调未调用

标签 node.js restful-authentication passport.js

我使用 passport-jwt 包进行简单例份验证, token 由 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);
            }
        });

    }));
};

希望收到您的来信。

谢谢

最佳答案

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

关于node.js - Passport jwt 验证回调未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38833470/

相关文章:

node.js - 如何用 Passport 保护 express 中的静态文件夹

node.js - 使用 nohup/supervise 命令的日志重定向问题

java - Spring 安全 : AuthenticationProcessingFilter is called twice

Azure OAuth 功能应用程序问题

cookies - 如何为 graphql 订阅实现身份验证防护(passportjs + cookies)

javascript - Passportjs 如何返回验证结果而不是重定向到另一个页面

Javascript - 避免调用多个 array.filters

node.js - npm install 与 edit package.json 和 npm update

javascript - Heroku 上的 React 应用程序无法启动

grails - 从URL下载内容而不提示在Grails中进行身份验证