Stack Overflow en español Asked by Osleynin Mambell Ramos on September 12, 2020
Necesito hacer un método para cambiar la contraseña en una aplicación. ya lo hice pero al momento de ingresar en la aplicación me dice que la contraseña es incorrecta. El problema me ocurre por la encryptación. Al momento de comparar la contraseña en la validacion me dice que no es correcta…
var User = require('../app/models/user');
app.post('/api/changepass', ComprobarClave, function (req, res) {
try{
User.findOne({ 'local.email' : req.user.local.email }, function(err, user) {
console.log(req.user.generateHash(req.body.password));
console.log(req.user.generateHash(req.body.password_confirmation));
// Si hay errores, se retornan
if (err){
return done(err);
}else {
User.update({ 'local.email' : req.user.local.email },{'$set':{'local.password':req.user.generateHash(req.body.clave)}}, function(err, user){
console.log(user);
});
}
});
} catch (e) {
res.send('error');
}
return res.render('admin/userconfiguracion.ejs', {
user: req.user
});
});
// Funciones adicionales para asegurarse que el usuario haya iniciado sesion, este logeado
function ComprobarClave(req, res, next) {
var clave1 = req.body.password;
var clave2 = req.body.password_confirmation;
if (clave1 == clave2) {
console.log(msg_str_pass_pass_igual);
return next();
} else {
console.log(msg_str_pass_pass_diferente);
req.flash('signupMessage', msg_str_pass_pass_diferente);
res.redirect('/signup');
}
};
los metodos de encryptar estan en el model/users
var bcrypt = require('bcrypt-nodejs'); // modulo de encriptacion basado en el cifrado de Blowfish
// genera el hash de encriptación para la clave
userSchema.methods.generateHash = function(password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null); // el SaltSync predeterminado es 10
};
// cheque si un password es valido
userSchema.methods.validPassword = function(password) {
return bcrypt.compareSync(password, this.local.password);
};
Ya lo resolví, al parecer estaba usando mal el codigo, para modificar en mongoDB Aca anexo el codigo por si alguien lo necesita. El problema estaba en el else del post api/changepass
user.local.password = user.generateHash(req.body.password);
user.save(function(err) {
if (err) {
return res.redirect('back');
} else {
res.render('admin/userconfiguracion.ejs', {user: req.user, mensaje: 'Su
contraseña ha sido cambiada'} );
} });
Answered by Osleynin Mambell Ramos on September 12, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP