【发布时间】:2018-03-19 18:31:57
【问题描述】:
尝试将密码与bcrypt 进行比较时出现此错误
错误: Error: data and hash arguments required
这是我的代码
//compare password
bcrypt.compare(req.param('password'), user.encryptedPassword, function(err, valid) {
if (err) return next(err);
//if password doesn't match
if (!valid) {
var usernamePasswordMismatchError = [{name: 'usernamePasswordMismatch', message: 'Invalid Password'}]
req.session.flash = {
err: usernamePasswordMismatchError
}
res.redirect('/session/new');
return;
}
//log user in
req.session.authenticated = true;
req.session.User = user;
//redirect user to profile page
res.redirect('/user/show/'+ user.id);
});
这是我的架构设置
module.exports = {
attributes: {
name: {
type: 'string',
required: true
},
email: {
type: 'string',
email: true,
required: true,
unique: true
},
phone: {
type: 'string',
required: true
},
encryptedPassword: {
type: 'string'
},
toJSON: function() {
var obj = this.toObject();
delete obj.password;
delete obj.encryptedPassword;
delete obj._csrf;
return obj;
}
},
connection:'mongodb'
};
请问你做错了什么?
【问题讨论】:
-
生成密码哈希的代码是什么样的?
-
密码哈希在架构中完成
-
“在架构中完成”是什么意思。哪个代码生成它?您需要在某个地方使用
bcrypt生成它,以便稍后比较哈希。 -
请给我一个例子.....只是学习最近的风帆
标签: node.js npm sails.js bcrypt