Estoy tratando de hacer la funcionalidad de inicio de sesión Mientras estaba creando la función de inicio de sesión como esta
login: (req,res) => { const body = req.body; getUserByEmail(body.email,(err,results)=>{ if(err){ console.log(err); } if(!results){ return res.json({ sucess: 0, data: "Invalid email or password 1" }); } console.log(body.pw); console.log(results.pw); const result = compareSync(body.pw,results.pw); console.log(result) if(result){ results.pw = undefined; const jsontoken = sign({result: results},"1234413",{ expiresIn: "1h" }); return res.json({ sucess: 1, message: "login sucessfully", token: jsontoken }); }else{ return res.json({ sucess: 0, data: "Invalid email or password2" }); } }); }Registro en la consola body.pw y results.pw, pero parece que me da las mismas cadenas, pero no estaba seguro de por qué me da un resultado falso, incluso si tengo la misma cadena para body.pw y results.pw
compareSync compara una contraseña con un hash. Primero debe codificar la contraseña antes de compararla con la contraseña de texto sin formato.
Primer intento
bcrypt.hash(myPlaintextPassword, saltRounds).then(function(hash) { // Store hash in your password DB. });Entonces puedes comparar
bcrypt.compare(myPlaintextPassword, hash).then(function(result) { // result == true });