【发布时间】:2016-02-17 05:41:23
【问题描述】:
我正在尝试使用 Loopback 的内置方法来实现更改密码功能,它工作正常,但它不会使用 hash 更新密码,而只是在数据库中保存纯文本。我在这个项目中使用loopback-component-passport npm 包。我搜索了很多网站,但我无法找到实现此功能的正确方法。有谁知道如何做到这一点?
//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'});
});
}
});
});
});
【问题讨论】:
标签: javascript node.js loopbackjs strongloop