I'm trying to make a logon with passportjs but for more than I put the user and password well always directs me to the fail logon.
Passport.js
module.exports = function(passport) {
passport.use('local', new LocalStrategy({
usernameField: 'username',
passwordField: 'password',
passReqToCallback: true
},function(req, usuario, password, done) {
console.log(username+' = '+ password);
request.query("SELECT * FROM tb_User WHERE usuario = 'daniel'", function(err, rows){
console.log(err);
if (err){
console.log('Error en query');
return done(req.flash('loginMessage', 'Error en query', err));
}
if (!rows.recordset.length) {
console.log('No se encontro usuario');
return done(null, false, req.flash('loginMessage', 'User or Password incorrect'));
// req.flash is the way to set flashdata using connect-flash
}
//if (!bcrypt.compareSync(password, rows.recordset[0].Password)){
if(!user.verifyPassword(password=rows.recordset[0].Password)){
console.log('Error en password');
return done(null, false, req.flash('loginMessage', 'User or Password incorrect'));
// if the user is found but the password is wrong
}
// all is well, return successful user
console.log(rows.recordset[0]);
return done(null, rows.recordset[0].usuario);
});
})
);
router.js
app.post('/login', passport.authenticate('local', {
successRedirect : '/Home', // redirecciona a pagina pricipal
failureRedirect : '/fail', // redirecciona a login
failureFlash : true // allow flash messages
}),
function(req, res, info) {
console.log("hello");
res.render('/', {message: req.flash('loginMessage')});
});
index.js
//Inicio de middleware ===========================================================
app.engine('html', engines.mustache);
app.set('view engine', 'html');
app.use(morgan('dev')); // Loguea todos los request en la consola
app.use(cookieParser());// Lee los cookies (necesario para auth)
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(express.static(__dirname));
// requerido para inicio de passport
app.use(session({
secret: 'session',
resave: true,
saveUninitialized: true
} )); // session secreta
app.use(flash()); // usa connect-flas para los mensajes flash guardados en la sesion
app.use(passport.initialize());
app.use(passport.session()); // persistente login sessions
// routes ======================================================================
require('./js/passport')(passport);
require('./js/router')(app, passport);
probe, taking Bcrypt out, but I still get the same "error".
If someone can help me, I would appreciate it.