LocalStrategy不是一个构造函数
我使用passport.js进行身份validation ,并尝试设置本地策略。 但是,每当我运行我的代码时,我得到一个错误,说localStrategy
不是一个构造函数。
代码 :
// config/passport.js // load all the things we need var localStrategy = require('passport-local'); // load up the user model var User = require('../app/models/user'); // expose this function to our app using module.exports module.exports = function(passport) { // ========================================================================= // passport session setup ================================================== // ========================================================================= // required for persistent login sessions // passport needs ability to serialize and unserialize users out of session // used to serialize the user for the session passport.serializeUser(function(user, done) { done(null, user.id); }); // used to deserialize the user passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { done(err, user); }); }); // ========================================================================= // LOCAL SIGNUP ============================================================ // ========================================================================= // we are using named strategies since we have one for login and one for signup // by default, if there was no name, it would just be called 'local' var authenticate = User.authenticate(); console.log(authenticate); passport.use('local-signup', new localStrategy(authenticate)); };
当我运行应用程序时,我得到:
TypeError: localStrategy is not a constructor at module.exports (/home/ubuntu/workspace/config/passport.js:38:35) at Object.<anonymous> (/home/ubuntu/workspace/server.js:19:29) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.runMain (module.js:604:10) at run (bootstrap_node.js:389:7) at startup (bootstrap_node.js:149:9) at bootstrap_node.js:504:3
如果你看这里https://www.npmjs.com/package/passport-local他们使用新的LocalStrategy
。 而我有另一个应用程序也使用这个,它的工作= S
帮帮我?
你只是错过了包括战略在你的要求
更改
var localStrategy = require('passport-local');
至
var localStrategy = require('passport-local').Strategy
;