无法将密码与hash Passport NodeJS

时间:2018-02-21 21:01:13

标签: javascript node.js

我想创建更改密码的功能。所以首先我必须将旧密码与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' }); 
          }
        });
});

1 个答案:

答案 0 :(得分:0)

您不应该在DB中保存密码,这是不安全的。您应该在节点中对其进行哈希处理,然后将哈希密码保存到数据库中。然后,当您想要检查用户时,您可以散列他们给您的新密码,并将其与数据库中的哈希值进行比较。你永远不会,永远不存储未加密的密码。这是灾难的秘诀。

像bcrypt这样的图书馆让这很容易。