我正在尝试制作一个MEAN堆栈(Nodejs,Mongo,Angular应用程序),现在我正在尝试进行API身份验证和令牌。 我正在按照本教程https://www.youtube.com/watch?v=6pdFXmTfkeE&t=185s和我的passport.js现在看起来像这样:
passport.js
const JwtStrategy = require('passport-jwt').Stategy;
const ExtractJwt = require('passport-jwt').ExtractJwt;
const User = require('../models/user');
const config = require('../config/database');
module.exports = function (passport) {
let opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderWithScheme("jwt");
passport.use(new JwtStrategy(opts, (jwt_payload, done) => {
User.getUserById(jwt_payload.data._id, (err, user) => {
if (err) {
return done(err, false);
}
if (user) {
return done(null, user);
} else {
return done(null, false);
}
});
}));
}
我收到了下一个错误:
TypeError:JwtStrategy不是构造函数 在module.exports(C:\ Users \ dan.diaconu \ MakeIT \ api \ config \ passport.js:10:18) 在对象。 (C:\ Users \用户dan.diaconu \ MakeIT \ API \ app.js:28:29) 在Module._compile(module.js:652:30) 在Object.Module._extensions..js(module.js:663:10) 在Module.load(module.js:565:32) 在tryModuleLoad(module.js:505:12) 在Function.Module._load(module.js:497:3) 在Function.Module.runMain(module.js:693:10) 在启动时(bootstrap_node.js:188:16) 在bootstrap_node.js:609:3
有什么想法吗?谢谢! :)
答案 0 :(得分:2)
require
声明Stategy
中有拼写错误。
更改
const JwtStrategy = require('passport-jwt').Stategy;
到
const JwtStrategy = require('passport-jwt').Strategy;