I am consulting the user using the module mssql to bring the password and compare it to the hash using bcrypt to be able to log in.
This is the code to authenticate:
var LocalStrategy = require('passport-local').Strategy;
var sql = require('mssql');
var bcrypt = require('bcryptjs');
module.exports = function(passport) {
passport.serializeUser(function(usuario, done) {
done(null, usuario);
});
passport.deserializeUser(function(obj, done) {
done(null, obj);
});
passport.use(new LocalStrategy({
passReqToCallback: true
}, function(req, Sk_Codigo_Usuario, Sk_Clave, done) {
var config = require('.././database/config');
sql.connect(config)
.then(function() {
var request = new sql.Request();
request.query("SELECT Sk_Codigo_Usuario, Sk_Nombre, Sk_Clave FROM Sk_Usuarios WHERE Sk_Codigo_Usuario = '" + req.body.username + "'")
.then(function(recordset) {
var usuario = recordset[0];
if (bcrypt.compareSync(Sk_Clave, usuario.Sk_Clave)) {
return done(null, {
Sk_Nombre: usuario.Sk_Nombre,
Sk_Codigo_Usuario: usuario.Sk_Codigo_Usuario
});
}
sql.close();
return done(null, false, req.flash('authmessage', 'Usuario o Password incorrecto.'));
})
.catch(function(err) {
console.log('Request error: ' + err);
});
})
.catch(function(err) {
if (err) {
console.log('SQL Connection Error: ' + err);
}
});
}));
};
Running the application, the console tells me the following error:
Request error: TypeError: Can not read property 'Sk_Clave' of undefined
Thank you.