我正在通过邮递员发布一些输入以登录用户。问题是,每当我输入正确的密码时,Postman都说我输入了错误的密码,即使它绝对正确。这是我要登录的用户:
编辑:当我说邮递员说我输入了错误的密码时,我的意思是它给了我"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 名称中的“ /”表示“文件夹/文件”。否则,它在根中。
谢谢。
答案 0 :(得分:0)
在将正确的密码输入到正确的电子邮件中时,我希望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");