码迷,mamicode.com
首页 > 其他好文 > 详细

bcrypt 加密的坑

时间:2019-03-14 09:16:01      阅读:310      评论:0      收藏:0      [点我收藏+]

标签:同步   div   这一   user   alt   OLE   wait   email   post   

const bcrypt = require(‘bcryptjs‘) //加密
 
//不存在,则存储
const newUser = new User({ 
name: ctx.request.body.name,
email: ctx.request.body.email,
password:  ctx.request.body.password
});
 
//加密
await bcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(newUser.password, salt, (err, hash) => { //需要加密的东西
if (err) throw err;
newUser.password = hash;
});
});

 

await newUser.save()
.then(success => {
consol.log("注册成功")
})
.catch(err => {
Console.log(err);
})
 
ctx.body = newUser;
 
需求:接收前端传过来的post数据,经过加密后存储到数据库
 
坑:用bcrypt加密后进行存储【newUser.save()】,但是存储数据的密码还是明文【打印过hash,在加密的函数里是正常的】
 
解决:bcrypt.genSalt()这个方法本身就是异步的,这时候再用await就出问题了。解决方法就是把加密用同步的方法来实现,以及把加密这一块封装起来单独调用就行

bcrypt 加密的坑

标签:同步   div   这一   user   alt   OLE   wait   email   post   

原文地址:https://www.cnblogs.com/yinblog/p/10527735.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!