这种问题通常是由于缺少Passport包所需的依赖关系。确保安装和启用 passport 和 passport-local 程序包,如下所示:
npm install passport passport-local
const passport = require('passport'); const LocalStrategy = require('passport-local');
// Passport Configuration app.use(passport.initialize()); app.use(passport.session());
passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { done(err, user); }); });
passport.serializeUser(function(user, done) { return done(null, user.id); });
app.post('/login', passport.authenticate('local', { failureRedirect: '/login' }), function(req, res) { res.redirect('/'); } );
passport.use(new LocalStrategy(function(username, password, done) { User.findOne({ username: username }, function(err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Incorrect username.' }); } if (!user.validPassword(password)) { return done(null, false, { message: 'Incorrect password.' }); } return done(null, user); }); }));
尝试这个解决方法,看看它是否能够解决您的问题。