Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么bcrypt比较总是返回false_Javascript_Node.js_Mongodb_Authentication_Bcrypt - Fatal编程技术网

Javascript 为什么bcrypt比较总是返回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

每次我尝试登录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 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是什么