Задать вопрос
@american6oy
ME JS

Почему passport js не воспринимает правильный логин и пароль?

Есть вот такой код
passport.use(new LocalStrategy({
    usernameField: 'email',
    passwordField: 'password'
}, function(username, password, done) {

    User.findOne({ username: username }, function(err, user) {
        console.log(username, password)
        return err ?
            done(err) :
            user ?
            password === user.password ?
            done(null, user) :
            done(null, false, { message: 'Incorrect password.' }) :
            done(null, false, { message: 'Incorrect username.' });
    });
}));

app.post('/logins', function(req, res, next) {
    passport.authenticate('local',
        function(err, user, info) {
            console.log(err, user, info)
            return err ?
                next(err) :
                user ?
                req.logIn(user, function(err) {
                    return err ?
                        next(err) :
                        res.redirect('/admin');
                }) :
                res.redirect('/login');
        }
    )(req, res, next);
});


Этот код я честно взял с хабра, до этого использовал тот, что написан в документации. Но результат один и тот, редирект /login. Не могу понять чего? Оба эти блока кода лежат в одном файле.
  • Вопрос задан
  • 252 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dolgo
JS-программист
Проверьте у вашего POST-запроса заголовок Content-Type.
Должен быть: application/x-www-form-urlencoded.
Иначе до callback'а даже не дойдёт.
Была такая проблема у passport, возможно, ваш случай
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы