Sto tentando di implementare la funzione di modifica password con il metodo integrato di Loopback, Funziona bene, ma non aggiorna la password con hash
, ma semplicemente salva un testo in chiaro nel db. Sto usando il pacchetto loopback-component-passport
npm in questo progetto. Ho cercato molti siti ma non riesco a trovare il modo corretto di implementare questa funzionalità. Qualcuno ha idea di come farlo?Implementare la password di modifica con Loopback
//Change user's pasword
app.post('/change-password', function(req, res, next) {
var User = app.models.user;
if (!req.accessToken) return res.sendStatus(401);
//verify passwords match
if (!req.body.password || !req.body.confirmation ||
req.body.password !== req.body.confirmation) {
return res.sendStatus(400, new Error('Passwords do not match'));
}
User.findById(req.accessToken.userId, function(err, user) {
if (err) return res.sendStatus(404);
user.hasPassword(req.body.oldPassword, function(err, isMatch) {
if (!isMatch) {
return res.sendStatus(401);
} else {
user.updateAttribute('password', req.body.password, function(err, user) {
if (err) return res.sendStatus(404);
console.log('> password change request processed successfully');
res.status(200).json({msg: 'password change request processed successfully'});
});
}
});
});
});
con questo ottengo 'TypeError: user.hashPassword non è una funzione 'cosa mi manca? –
Ho usato 'User.hashPassword (req.body.password)' e ha funzionato come un fascino .. Grazie mille! –
@VickyGonsalves sei il benvenuto, quando non riesci a capire qualcosa in loopback, controlla sempre il codice sorgente, aiuta molto –