NodeJS jwtStrategy需要一个函数来从请求中检索jwt错误

时间:2016-04-10 18:26:48

标签: node.js passport.js

我从https://devdactic.com/restful-api-user-authentication-1/学习了教程。但是我在这部分得到了错误

passport.use(new JwtStrategy(opts, function(jwt_payload, done)

运行node" server.js"

时出现错误
/home/chibi/Documents/connect/project/node_modules/passport-jwt/lib/strategy.js:39
throw new TypeError('JwtStrategy requires a function to retrieve jwt f
          ^
TypeError: JwtStrategy requires a function to retrieve jwt from requests (see option jwtFromRequest)
at new JwtStrategy (/home/chibi/Documents/connect/project/node_modules/passport-jwt/lib/strategy.js:39:15)
at module.exports (/home/chibi/Documents/connect/project/config/passport.js:10:16)
at Object.<anonymous> (/home/chibi/Documents/connect/project/server.js:30:29)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3

解决方案是什么?

1 个答案:

答案 0 :(得分:25)

official documentation开始,当使用JWT从2.x迁移到3.x时,您应该使用:

ExtractJwt.fromAuthHeaderWithScheme('jwt')

而不是旧的:

ExtractJwt.fromAuthHeader()