首页 > 解决方案 > 为什么我得到“密码错误”的响应,即使它是正确的?

问题描述

我正在通过邮递员发布一些输入以登录用户。问题是,每当我输入正确的密码时,邮递员都会说我输入了错误的密码,即使它肯定是正确的。这是我要登录的用户: 这个

编辑:当我说邮递员说我输入了错误的密码时,我的意思是它给了我"Password is wrong"这一行的答案:if(!validPass) return res.status(400).send("Password is wrong");

编辑 2:这是我在 Postman 中输入的内容: 这个

下面是登录过程:

//LOGIN:
router.post('/login',async(req,res)=>{  

    //Validation
    const{error} = loginValidation(req.body);
    if(error) return res.status(400).send(error.details[0].message);

    //If user already in db
    const u = await User.findOne({email:req.body.email});
    if(!u) return res.status(400).send("Email is wrong");

    //Password check
    const validPass = await bcrypt.compare(req.body.password,u.password);
    if(!validPass) return res.status(400).send("Password is wrong");
    res.send("A ok");
});

对于更广泛的上下文,这是我的完整项目:https ://plnkr.co/edit/ydQwisGd3kVC06RqvhjR?p=catalogue 名称中的“/”表示“文件夹/文件”。否则它在根中。

谢谢。

标签: javascriptauthenticationpostman

解决方案


当正确的密码输入正确的电子邮件时,我想要u.password相等req.body.password,否则不要登录。这是我想出的:

const user_password = u.password;
    const password_history = req.body.password;
    if(user_password != password_history) return res.status(400).send("Password is wrong");

推荐阅读