我目前正在尝试为我的node.js项目制作认证模块。
我已经看过了一些使用bcrypt生成哈希值的例子,例如:
https://github.com/bnoguchi/mongoose-auth/blob/master/lib/modules/password/plugin.js https://github.com/Turbo87/locomotive-passport-boilerplate/blob/master/app/models/account.js
然而,由于bcrypt很耗时,它们为什么要使用bcrypt.hashSync()函数呢?难道不应该使用异步函数以防止阻塞代码吗?例如:
User.virtual('password')
.get( function () {
return this.hash;
})
.set( function (password) {
bcrypt.hash('password', 10, function(err, hash) {
this.hash = hash;
});
});
您能否解释一下哪种方法更好,为什么?谢谢!
setPassword
来进行异步密码设置。 - Michelle Tilley