我想创建更改密码的功能。所以首先我必须将旧密码与db中的实际用户密码进行比较。这是问题所在,我在路由器函数内写,但没有调用。有人可以帮助我,并告诉我如何调用它来获得旧密码与密码用户相同的答案?
router.post('/change-password', function (req, res, next) {
console.log(req.body)
User.comparePassword(req.body.oldPpassword, user.password, function (err, isMatch) {
if (err) throw err;
if (isMatch) {
return done(null, user);
} else {
return done(null, false, { message: 'Invalid password' });
}
});
});
答案 0 :(得分:0)
您不应该在DB中保存密码,这是不安全的。您应该在节点中对其进行哈希处理,然后将哈希密码保存到数据库中。然后,当您想要检查用户时,您可以散列他们给您的新密码,并将其与数据库中的哈希值进行比较。你永远不会,永远不存储未加密的密码。这是灾难的秘诀。
像bcrypt这样的图书馆让这很容易。