- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 bookshelfjs 中使用 bcrypt 哈希密码,当我在注册时进行插入查询时,它工作得很好,但是当我尝试更新密码时,它不会对密码进行哈希处理。
模型.js
var Bookshelf = require('../../db').bookshelf;
var bcrypt = require('bcrypt');
var Promise = require('bluebird');
// Provider model
var User = Bookshelf.Model.extend({
tableName: 'user_table',
initialize: function() {
this.on('creating', this.hashPassword, this);
},
hashPassword: function(model, attrs, options) {
return new Promise(function(resolve, reject) {
bcrypt.hash(model.attributes.password, 10, function(err, hash) {
if( err ) reject(err);
model.set('password', hash);
resolve(hash); // data is created only after this occurs
});
});
}
});
var Users = Bookshelf.Collection.extend({
model: User
});
module.exports = {
User: User,
Users: Users
};
service.js
var updateUser = function (object ,whereId, callback) {
Model.User.forge({id: whereId})
.fetch({require: true})
.then(function (user) {
user.save(object)
.then(function () {
console.log(user);
return callback(null, user);
})
.catch(function (err) {
return callback(err, null);
});
})
.catch(function (err) {
return callback(err, null);
});
};
var createUser = function (reqObject, callback) {
Model.User.forge(reqObject)
.save()
.then(function (user) {
return callback(null, user);
})
.catch(function (err) {
return callback(err, null);
});
};
更新数据时:
var dataToBeUpdated = {
password : req.body.password
};
最佳答案
将模型中的“创建”替换为“保存”即可完成工作
var User = Bookshelf.Model.extend({
tableName: 'user_table',
initialize: function() {
this.on('saving', this.hashPassword, this);
},
hashPassword: function(model, attrs, options) {
return new Promise(function(resolve, reject) {
bcrypt.hash(model.attributes.password, 10, function(err, hash) {
if( err ) reject(err);
model.set('password', hash);
resolve(hash); // data is created only after this occurs
});
});
}
});
来源:http://wesleytsai.io/2015/07/28/bookshelf-bcrpyt-password-hashing/
关于javascript - Bookshelfjs + bcrypt hashPassword 可以创建但不能更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41755249/
我正在阅读 phpass manual .在某些时候,它会像这样检查散列的结果: $hash = $hasher->HashPassword($pass); if (strlen($hash) < 2
我想我在这里遗漏了一些关键的东西。在 CPasswordHelper::hashPassword函数我们有几行: $salt=self::generateSalt($cost); $hash=cry
我在 bookshelfjs 中使用 bcrypt 哈希密码,当我在注册时进行插入查询时,它工作得很好,但是当我尝试更新密码时,它不会对密码进行哈希处理。 模型.js var Bookshelf =
所以,在 ASP.NET 中, System.WebHelpers.Crypto.HashPassword("123456"); 将创建一个每次都是唯一的散列、加盐字符串。这很棒;这意味着如果有人设法
ASP.net 有一个 System.Web.Helpers.Crypto用于散列和验证密码的类。它似乎可以动态生成盐并将其存储为密码哈希的一部分。 我的问题是,随着计算机变得越来越强大并且需要增加迭
我在feathersjs文档中注意到 hashPassword This hook is used to hash plain text passwords before they are saved
我想将 c# 中的 byte.Parse 转换为 javascript ..但我不知道如何。 byte[] binarySaltValue = new byte[SaltValueSize]; bin
我是一名优秀的程序员,十分优秀!