У меня проблемы с passport.authenticate с использованием локальной стратегии, я использую postgresql локально и использую эту стратегию для сравнения и попытки входа в систему:
const LocalStrategy = require('passport-local').Strategy;
const db = require('./config/database.js');
const bcrypt = require('bcryptjs');
const User = require('../models/User');
module.exports = function (passport) {
passport.use(
new LocalStrategy({
usernameField: 'correo'
}, (correo, contrasena, done) => {
User.findOne({
correo: correo
})
.then(user => {
if (!user) {
return done(null, false, {
message: 'El correo ingresado no está registrado'
});
}
bcrypt.compare(contrasena, user.contrasena, (err, isMatch) => {
if (err) throw err;
if (isMatch) {
return done(null, user);
} else {
return done(null, false, {
message: 'La contraseña es incorrecta'
})
}
});
})
.catch(err => console.log(err));
})
);
passport.serializeUser((user, done) =>{
done(null, user.id);
});
passport.deserializeUser((id, done) => {
User.findById(id, (err, user) =>{
done(err, user);
});
});
}
Когда я пытаюсь войти, даже если я поставилправильные учетные данные для его аутентификации, я просто получаю перенаправление сбоев из моего маршрута дескриптора входа в систему:
router.post('/login', (req, res, next) => {
passport.authenticate('local', {
successRedirect: '/dashboard',
failureRedirect: '/users/login',
failureFlash: true
})(req, res, next);
});
у меня есть промежуточное ПО для сеанса и инициализировано в моем app.js, а также сеанс и, конечно,сериализация и десериализация.