javascript - 为什么我得到“密码错误”的响应,即使它是正确的?
问题描述
我正在通过邮递员发布一些输入以登录用户。问题是,每当我输入正确的密码时,邮递员都会说我输入了错误的密码,即使它肯定是正确的。这是我要登录的用户:
编辑:当我说邮递员说我输入了错误的密码时,我的意思是它给了我"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 名称中的“/”表示“文件夹/文件”。否则它在根中。
谢谢。
解决方案
当正确的密码输入正确的电子邮件时,我想要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");
推荐阅读
- docker - Docker : 获取 https://registry-1.docker.io/v2/: x509: 未知权威签署的证书
- ansible - Ansible jinja - 如果循环最后没有换行符
- javascript - 以 JSON 格式发送文件流
- ruby-on-rails - 国际化后easy-autocomplete不起作用(i18n)
- json - Fetch data.slice 不是函数问题
- java - 替换 ListView 中的对象 - JavaFX
- javascript - Textarea 可编辑,除了来自输入的值
- wix - 通过 Wix Bootstrapper\Wix Toolset 下载文件
- javascript - axios超时后得到通知
- rest - 存在授权标头时邮递员拒绝工作