Utilizo la biblioteca nodejs bcrypt para una mejor protección con contraseña.Biblioteca Nodejs bcrypt
No estoy seguro de entender exactamente cómo usarlo, pero tengo esto hasta ahora:
//A module containing this login function:
login: function(credentials,req,res) {
//"credentials" is containing email and password from login form
var query = 'SELECT password, email FROM users WHERE email = ? LIMIT 1';
client.query(query,[credentials.email], function(err, results) {
if (results[0]) {
//Compare passwords
if (bcrypt.compareSync(credentials.password, results[0].password)) {
//Set session data and redirect to restricted area
}
}
});
}
me han quitado todos los gastos de envío aquí en el ejemplo de error de manera que es más fácil de leer el código.
1.Esto funciona y puedo iniciar sesión y configurar la sesión. ¿Pero esto es todo lo que hay que hacer? ¿Me estoy perdiendo de algo?
2. Parece que la sal está precedida de la contraseña al generar el hash. ¿No tengo que guardar la sal en db?
Cualquier ayuda apreciado
Genial. Muy buena biblioteca. Y fácil de usar – georgesamper
Gran respuesta. Esta publicación también me ayudó a entender por qué no necesitas persistir con la sal. http://stackoverflow.com/questions/277044/do-i-need-to-store-the-salt-with-bcrypt – emilebaizel
Cuidado: como señala la respuesta aceptada de la pregunta vinculada por @emilebaizel, la sal se almacena como parte del hash resultante. El número de rondas utilizadas también forma parte del hash, lo que da como resultado un solo hash que tiene TODA la información que necesita el código "checker". – Darkhogg