为了账号安全,请及时绑定邮箱和手机立即绑定

加密 不成功

加密这块, save中的console.log(user); 在bcrypt.genSalt 之前执行,也就是说,数据保存完了采取加密 ,所以数据库里的密码是没有加密的 ,这个怎么破。

bcrypt.genSalt(SALT_WORK_FACTOR,function(err,salt){

if(err){  console.log(err); return next(err)}

bcrypt.hash(user.password,salt,function(err,hash){

if(err) {return next(err)}

user.password = hash;

console.log(user);

console.log("password" +user.password);

next();

})

})


user.save(function(err,user){

if(err){

console.log(err);

}

res.redirect('/admin/userList');

console.log(user);

})


部分打印结果:

 Mongoose: mpromise (mongoose's default promise library) is deprecated, plug

your own promise library instead: http://mongoosejs.com/docs/promises.html

 { __v: 0,

   name: 'dce',

   password: '123', //save 中打印的user  和数据库查询到的结果一致

   _id: 5829f0ad642bfe14a4d5a282,

   meta:

    { updateAt: Tue Nov 15 2016 01:13:17 GMT+0800 (中国标准时间),

      createAt: Tue Nov 15 2016 01:13:17 GMT+0800 (中国标准时间) } }

 { __v: 0,

   name: 'dce',

   password: '$2a$10$eCjEUh0YUcd/PurwKHYpQ.Qok7w1qNIzlSBOdveXES26Dd2gHREri',// 加密后打印的user 

   _id: 5829f0ad642bfe14a4d5a282,

   meta:

    { updateAt: Tue Nov 15 2016 01:13:17 GMT+0800 (中国标准时间),

      createAt: Tue Nov 15 2016 01:13:17 GMT+0800 (中国标准时间) } }

 password$2a$10$eCjEUh0YUcd/PurwKHYpQ.Qok7w1qNIzlSBOdveXES26Dd2gHREri


正在回答

2 回答

是的,确实如此,不过你的是没加密成功,我的直接是密码都没保存进数据库,谢谢哥们

0 回复 有任何疑惑可以回复我~

已经解决 ,注册 ,加密的时候  多了个next ,这个next和bcrypt.genSalt中的回调函数是并行的,所以导致save 函数在加密完成之前执行


UserSchema.pre('save',function(next){

var user = this;

console.log('this is first');

//保存新数据

if(this.isNew){

this.meta.createAt = this.meta.updateAt =Date.now();

}

else{

//更新数据

this.meta.updateAt = Date.now();

}


bcrypt.genSalt(SALT_WORK_FACTOR,function(err,salt){

if(err){  console.log(err); return next(err)}

bcrypt.hash(user.password,salt,function(err,hash){

if(err) {return next(err);}

user.password = hash;

console.log(user);

console.log("password: " +user.password);

next();

})

})

//调到下一个流程

//next();//异步执行的

})


4 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
node建站攻略(二期)——网站升级
  • 参与学习       51919    人
  • 解答问题       423    个

帮助你深入前后端开发留下的迷惑,为进一步自学打下基础

进入课程

加密 不成功

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号