[英]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.