bcrypt 与 nodejs 比较
bcrypt compare with nodejs
所以我收到了这个错误
Error: Illegal arguments: string, undefined
这是代码
router.post('/loguser', async (req, res) => {
const compareHashed = await bcrypt.compare(req.body.password)
const user = await User.findOne({
username: req.body.username,
password: compareHashed
})
if (user) {
console.log('user is found')
}
if (!user) {
console.log('user is not found')
}
})
有谁知道如何解决这个问题,我知道这是 bcrypt 的问题
嗨,兄弟,首先我们对密码进行哈希处理并将其存储在数据库中
从数据库中检索哈希密码并将其与实际密码进行比较
例如:如果我们尝试使用电子邮件和密码登录
User.find({email:req.body.email}).exec().then(result=>{
if(result.length < 1){
console.log('email not found')
}else{
bcrypt.compare(req.body.password,result[0].password,(err,result)=>{
if(err){
console.log('password not match')
}
if(result){
console.log('password match')
}
})
}
})
所以我收到了这个错误
Error: Illegal arguments: string, undefined
这是代码
router.post('/loguser', async (req, res) => {
const compareHashed = await bcrypt.compare(req.body.password)
const user = await User.findOne({
username: req.body.username,
password: compareHashed
})
if (user) {
console.log('user is found')
}
if (!user) {
console.log('user is not found')
}
})
有谁知道如何解决这个问题,我知道这是 bcrypt 的问题
嗨,兄弟,首先我们对密码进行哈希处理并将其存储在数据库中
从数据库中检索哈希密码并将其与实际密码进行比较
例如:如果我们尝试使用电子邮件和密码登录
User.find({email:req.body.email}).exec().then(result=>{
if(result.length < 1){
console.log('email not found')
}else{
bcrypt.compare(req.body.password,result[0].password,(err,result)=>{
if(err){
console.log('password not match')
}
if(result){
console.log('password match')
}
})
}
})