PassportJS функция проверки не работает - PullRequest
0 голосов
/ 24 февраля 2019

У меня работает стратегия local-signup Passport.js, когда пользователь отправляет форму регистрации, а затем при отправке запускается серия проверок, чтобы убедиться, что пользователь отправил адрес электронной почты, которого нет в базе данных.флаг условий обслуживания имеет значение true, а поля пароля совпадают.В тот момент, когда форма отправляется без заполненной формы, запускается failureRedirect, но путь function(req, email, password, done) { никогда не вызывается.Почему и как я могу исправить настройки моего паспорта?

маршрут:

siteRoutes.route('/sign-up')
    .get(function(req, res){
        res.render('pages/site/sign-up.hbs', {
            error: req.flash('error'),
            csrfToken: req.csrfToken()
        });
    })
    .post(passport.authenticate('local-signup', {
        successRedirect: '/app/setup/users',
        failureRedirect: '/sign-up'
    }));

*

* стратегия: **

passport.use('local-signup', new LocalStrategy({
    passReqToCallback: true,
    usernameField: 'email'
}, function(req, email, password, done) {
    console.log("Signup check has begun")
    console.log(e)

    models.User.findOne({
        where: {
            email: email
        }
    }).then(function(existingUser) {
        console.log("check existing user")
        //If user already exists in system
        if (existingUser){
            return done(null, false, req.flash('error', 'Email already exists.'));
        }
    //If password does not match confirm password field
        else if (req.body.tosAcceptance === undefined) {
            console.log("TOS Not Checked")
            done(null, false, req.flash('error', 'You must agree to our Terms of Service and Privacy Polcy. Please read and check the box if you agree.'));
        } else if (password !== req.body.confirmPassword) {
            console.log("Password does not match")
            done(null, false, req.flash('error', 'Passwords do not match.'));
        } else {

        }
    }).catch(function(e){
        console.log(e)
    })

Iникогда не видеть console.log("Signup check has begun"), что указывает на то, что эта часть никогда не запускается при наличии ошибки.Однако, если все поля заполнены, то эта часть запускается.Не уверен, почему это так.

...