Я создаю node.js приложение, и я использую Паспорт js, я прочитал документацию Passport-local с официального сайта, и я использовал локальную стратегию паспорта и это throws user.validPassword не является функцией Ошибка!
app. js
require('./config/test')(passport);
app.use(passport.initialize());
app.use(passport.session());
index. js
router.get('/test', (req, res, next)=>{
res.render('test');
});
router.post('/test',
passport.authenticate('local', { successRedirect: '/',
failureRedirect: '/test',
failureFlash: true })
);
config / test. js
var passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;
const User = require('../model/students');
module.exports = function () {
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);
});
}
));
}
Версия узла: 10.16.1
Express Версия: 4.16.1