Node.js bcrypt和async中的问题
我正在尝试编写一个创建用户表单。在我的lambda函数中。我想试试bcrypt是否有效,因此我添加了如下内容:Node.js bcrypt和async中的问题,node.js,lambda,bcrypt,Node.js,Lambda,Bcrypt,我正在尝试编写一个创建用户表单。在我的lambda函数中。我想试试bcrypt是否有效,因此我添加了如下内容: ... const bcrypt = require('bcryptjs') ... exports.handler = async (event, error, callback) => { const email = event.email ? event.email : '' const username = event.username ? event.usern
...
const bcrypt = require('bcryptjs')
...
exports.handler = async (event, error, callback) => {
const email = event.email ? event.email : ''
const username = event.username ? event.username : ''
const password = event.password ? event.password : '' // in this example,I use '123123' as a test password
const timestamp = new Date().getTime().toString()
...
const saltRounds = 10
const passwordhash = await bcrypt.hashSync(password, saltRounds)
console.log('passwordhash' , passwordhash)
const compareResult = await bcrypt.compareSync(passwordhash , password)
console.log('compateresult' ,compareResult )
但是我不知道为什么会有这样的结果。它总是返回false。
我读了一些其他的问题,也有同样的问题,它说我应该使用等待,让它运行。然而,我仍然无法修复它。有人能解释一下bcrypt.hashSync和bcrypt.compareSync是如何运行的吗?根据,密码是compareSync
的第一个参数。如果我更改代码中的参数顺序,它将按预期工作
const compareResult=wait bcrypt.compareSync(密码、密码哈希)
您还可以删除wait
,compareSync
和hashSync
都是同步方法。基于,密码是compareSync
的第一个参数。如果我更改代码中的参数顺序,它将按预期工作
const compareResult=wait bcrypt.compareSync(密码、密码哈希)
您还可以删除
wait
,compareSync
和hashSync
都是同步方法。是的……我还发现我刚刚犯了一个愚蠢的错误,花了我一个小时……是的……我还发现我刚刚犯了一个愚蠢的错误,花了我一个小时。。。