尝试使用bcrypt,比较并返回Promise { }
我正在尝试使用aws lambda,猫鼬和bcryptjs创建登录api。我的lambda处理程序使用async,我只是想通过使用bcryptjs模块中的bcryptpare()函数将用户输入的密码与数据库中已经哈希的密码进行比较。但是,我的代码不断给我Promise {},所以我尝试了多种方法来解决此问题,但仍然有问题。我是使用异步的新手,所以我可能做错了,所以请不要对我苛刻:)
我通过使用以下代码从MongoDB地图集获取带有加密密码的用户帐户数据,它可以正常工作。
let user = await User.findOne(query).select('_id name email password');
我也有一个像下面一样在user.js文件中创建的猫鼬方法。
UserSchema.methodsparePassword = function(password) {
return bcryptpare(password, this.password);
};
因此上述方法被调用,并使用以下代码在console.log中打印结果。
let passwordValid = userparePassword(parameters.password);
console.log('Password is validated', passwordValid);
它给了我
INFO Password is validated Promise { <pending> }
在lambda控制台中。
我已经进行了很多搜索,所以我尝试使用await在comparePassword之前,如下所示,仍然无法正常工作。
let passwordValid = await userparePassword(parameters.password);
我也尝试过通过使用then()来解决返回的诺言,如下所示
let passwordValid = userparePassword(parameters.password); passwordValid.then(function(err, result) { callback(null, { "statusCode": 200, "headers": { "Content-Type": "application/json" }, "body": JSON.stringify({ "success": false, "content": result }) }); });
但是,这依我的意愿仍然无法正常工作。我收到的唯一答复是
{
"message": "Internal server error"
}
我正在尝试使用aws lambda,猫鼬和bcryptjs创建登录api。我的lambda处理程序使用async,而我只是想将用户输入的密码与已散列的密码进行比较,即...
回答如下:您看过https://www.npmjs/package/bcrypt吗?
尝试使用bcrypt,比较并返回Promise { }
我正在尝试使用aws lambda,猫鼬和bcryptjs创建登录api。我的lambda处理程序使用async,我只是想通过使用bcryptjs模块中的bcryptpare()函数将用户输入的密码与数据库中已经哈希的密码进行比较。但是,我的代码不断给我Promise {},所以我尝试了多种方法来解决此问题,但仍然有问题。我是使用异步的新手,所以我可能做错了,所以请不要对我苛刻:)
我通过使用以下代码从MongoDB地图集获取带有加密密码的用户帐户数据,它可以正常工作。
let user = await User.findOne(query).select('_id name email password');
我也有一个像下面一样在user.js文件中创建的猫鼬方法。
UserSchema.methodsparePassword = function(password) {
return bcryptpare(password, this.password);
};
因此上述方法被调用,并使用以下代码在console.log中打印结果。
let passwordValid = userparePassword(parameters.password);
console.log('Password is validated', passwordValid);
它给了我
INFO Password is validated Promise { <pending> }
在lambda控制台中。
我已经进行了很多搜索,所以我尝试使用await在comparePassword之前,如下所示,仍然无法正常工作。
let passwordValid = await userparePassword(parameters.password);
我也尝试过通过使用then()来解决返回的诺言,如下所示
let passwordValid = userparePassword(parameters.password); passwordValid.then(function(err, result) { callback(null, { "statusCode": 200, "headers": { "Content-Type": "application/json" }, "body": JSON.stringify({ "success": false, "content": result }) }); });
但是,这依我的意愿仍然无法正常工作。我收到的唯一答复是
{
"message": "Internal server error"
}
我正在尝试使用aws lambda,猫鼬和bcryptjs创建登录api。我的lambda处理程序使用async,而我只是想将用户输入的密码与已散列的密码进行比较,即...
回答如下:您看过https://www.npmjs/package/bcrypt吗?