Javascript 为什么bcrypt比较总是返回false
每次我尝试登录bcrypt compare时返回false,但注册有效 以下是登录代码:Javascript 为什么bcrypt比较总是返回false,javascript,node.js,mongodb,authentication,bcrypt,Javascript,Node.js,Mongodb,Authentication,Bcrypt,每次我尝试登录bcrypt compare时返回false,但注册有效 以下是登录代码: async function init(passport){ const authenticateUser = async (email,password,done) => { const user = await User.findOne({email : email}) if(user === null) return done(null,false,{message : "Email
async function init(passport){
const authenticateUser = async (email,password,done) => {
const user = await User.findOne({email : email})
if(user === null) return done(null,false,{message : "Email and Password do not match"});
try{
const isPasswordMatch = await bcrypt.compare(password,user.password);
console.log(isPasswordMatch);
if(isPasswordMatch) return console.log("Up and running");
done(null,false,{message : "Password"});
}
catch(error){done(error)}
}
}
module.exports = init;
请注意,我正在使用passportjs库并排除了它的代码,但在添加它之前我遇到了这个问题在注册时保存用户时,您是否对密码进行了哈希处理?您可以检查密码是否为纯文本。如果您登录数据库并运行findOne,您是否找到了相同类型的凭据?此外,如果由于某些原因,电子邮件不是唯一的,您可能会得到不同的用户。看看这些。好主意,但我只是检查了一下,一切都很好。唯一的问题是,当我使用哈希字符串查找用户时,它找不到ituhm…对此无能为力,不知道哈希str是什么