Javascript 登录时无法进行post查询
我正在尝试使用bcrypt验证用户的密码。但是,不幸的是,我的post请求不起作用,它只是加载了很长一段时间,仅此而已 我有一个模型user.js,代码如下:Javascript 登录时无法进行post查询,javascript,node.js,bcrypt,Javascript,Node.js,Bcrypt,我正在尝试使用bcrypt验证用户的密码。但是,不幸的是,我的post请求不起作用,它只是加载了很长一段时间,仅此而已 我有一个模型user.js,代码如下: UserSchema.methods.comparePasswords = function (password) { return bcrypt.compare(password, this.password); }; export const signin = async (req, res, next) => {
UserSchema.methods.comparePasswords = function (password) {
return bcrypt.compare(password, this.password);
};
export const signin = async (req, res, next) => {
const { login, password } = req.body;
const user = await User.findOne({ login });
if (!user) {
return next({
status: 400,
message: 'User not found'
});
}
try {
const result = await user.comparePasswords(password);
} catch (e) {
return next({
status: 400,
message: 'Bad Credentials'
});
}
req.session.userId = user._id;
req.json(user);
};
我有一个控制器auth.js,代码如下:
UserSchema.methods.comparePasswords = function (password) {
return bcrypt.compare(password, this.password);
};
export const signin = async (req, res, next) => {
const { login, password } = req.body;
const user = await User.findOne({ login });
if (!user) {
return next({
status: 400,
message: 'User not found'
});
}
try {
const result = await user.comparePasswords(password);
} catch (e) {
return next({
status: 400,
message: 'Bad Credentials'
});
}
req.session.userId = user._id;
req.json(user);
};
处理不正确的输入效果很好,服务器会为我返回错误消息,但不会处理正确的输入。您的意思是执行
res.json(user)
?您使用的是什么bcrypt库?此版本bcrypt Ok,因为名为bcrypt nodejs的版本有一个bcrypt.compare()
不返回承诺的函数。我想爆炸药丸回答了这个问题。你的意思是做res.json(user)
?你在使用什么bcrypt库?这个版本bcrypt可以,因为名为bcrypt nodejs的有一个bcrypt.compare()
函数不返回承诺。我想爆炸药片回答了这个问题。