【发布时间】:2018-09-21 06:08:30
【问题描述】:
我正在尝试制作 MEAN Stack(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
有什么想法吗?谢谢! :)
【问题讨论】:
-
替换:
const { Strategy:JwtStrategy, ExtractJwt} = require('passport-jwt');而不是:const JwtStrategy = require('passport-jwt').Stategy; const ExtractJwt = require('passport-jwt').ExtractJwt;
标签: javascript node.js mongodb jwt