我在使用此代码时遇到此错误:
async function get(user) {
user = await Joi.validate(user, userSchemaGet, { abortEarly: false });
await User.findOne(
{_id: user._id},
(err, res) => {
if(err){
console.log("ERROR : ")
console.log(err)
} else {
console.log("res")
console.log(res);
if(bcrypt.hash(user.password, 10) === res.hashedPassword) {
return res;
}
}
});
}
我阅读了有关此主题的所有stackoverflow,但没有任何反应。ps:最后一天运作良好...
1]可能user.password
为空或未定义。在将user
值传递给hash
功能之前,请先检查该值。
2)bcrypt.hash
是一个承诺,但是您将其用作常规功能。
3)bcrypt
具有特殊的比较功能,该功能用于检查密码是否与哈希匹配。您应该在这里使用它。