Почему выдает user.validPassword не является функцией Err? - PullRequest
0 голосов
/ 03 марта 2020

Я создаю 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

1 Ответ

0 голосов
/ 03 марта 2020

Этот тип ошибки возникает из-за того, что .validPassword (пароль) не является функцией в разделе «пользователь». Простой пример:

//I use this code on google.com main page.
var logo = document.querySelector("#hplogo");
logo.validPassword(""); // -> Error: .validPassword is not a function
// here I declare function under 'validPassword'
logo.validPassword = function(pass){
console.log("Validate password", pass);
};
logo.validPassword(""); // -> message: 'Validate password',''

Так что, я думаю, вам не хватает самой функции.

...