【发布时间】:2017-03-29 17:30:38
【问题描述】:
对 nodejs 还是很陌生,所以我经常被整个异步的东西绊倒。我正在尝试使用 bcrypt 和 bookshelf 在将密码存储到数据库之前对其进行哈希处理。非常直截了当...
我这样调用保存操作,
create(data) {
this.logger.info(`creating account`);
return bookshelf.transaction(trx => {
return new Account().save(data, { method: 'insert', transacting: trx });
});
}
在帐户模型中,我拦截了保存操作
initialize: function() {
let _this = this;
const saltRounds = 10;
_this.on('creating', function () {
bcrypt.genSaltSync(saltRounds, function(err, salt) {
bcrypt.hashSync(_this.get('password'), salt, function (err, hash) {
if (err) throw err;
_this.set('password', hash);
});
});
});
}
到目前为止,我查看的所有内容都表明这应该可以工作,但是纯文本密码仍然保存到数据库中,而不是散列密码。我做错了什么?
【问题讨论】:
标签: node.js bcrypt bookshelf.js