簡體   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