繁体   English   中英

无法将密码与哈希Passport NodeJS进行比较

[英]Can't compare password with hash Passport NodeJS

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

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

像bcrypt这样的库使此操作变得容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM