В паспорте отсутствуют учетные данные - PullRequest
0 голосов
/ 06 августа 2020

Хорошо, я пробовал просмотреть кучу других похожих случаев, но не смог найти решение, так как оно действительно не подходило к тому, что у меня было.

Когда я пытаюсь войти в систему, я получаю сообщение об ошибке

Отсутствуют учетные данные

, если моя форма пуста или если какое-либо имя пользователя / пароль пуст.

Но если я заполню свою форму неверной информацией, Вместо этого я получаю свою собственную ошибку, которую я хочу.

Это мои маршруты

server.get('/login', async (req, res) => {
    if(typeof req.user != 'undefined')
        res.redirect('/loginRedirect')

    else
    res.render('public assets/template.ejs', {
        page_title: "iWatched.xyz - Sign in/up",
        page_file: "login",
        page_data: {
            login_error: req.flash(),
            signup_error: req.flash()
        },
        user: req.user
    });
});
server.post('/login',
    passport.authenticate('local-login', {
        successRedirect: '/loginRedirect', 
        failureRedirect: '/login', 
        failureFlash: true 
    })
);

и моя локальная стратегия для входа

passport.use('local-login', new LocalStrategy({
    usernameField: 'email',
    passwordField: 'password',
    passReqToCallback: true 
},
    function (req, login, password, done) { 
        User.findOne({$or: [
            {'local.email':new RegExp('^'+login+'$', "i") },
            {'local.username': new RegExp('^'+login+'$', "i")}
        ]}, function (error, user) {

            if (error)
                return done(null, false, req.flash('error', {'error': error, 'login' : login})); 

            if (!user)
                return done(null, false, req.flash('error', {'error': 'No user found.', 'login' : login})); 

            if (!user.validPassword(password))
                return done(null, false, req.flash('error', {'error': 'Oops! Wrong password.', 'login' : login}));

            return done(null, user);
        });
    })
);

I ' Мне жаль, если я пропустил ответ где-то еще здесь, но я прошел через так много разных без везения, и буду признателен за любую помощь :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...