我想创建新用户并保存到我的数据库中的用户表中 我的行为如下:
create: function(req,res,next){
bcrypt.hash(req.param('password'),10,function (err, hashed) {
if (err) {
console.log("4");
return res.serverError({'err': 'hash Error!'});
} else{
User.create({
username: req.param('username'),
password: hashed,
type: req.param('type')
},function (err, created_user) {
if (err) {
err = validator(User, err);
return res.json({'status': false, 'errors': err.Errors});
}
return res.json({'status': true, 'result': created_user});
}
);
}
}
}
我的用户模型是:
module.exports = {
属性:{ 用户名: { 键入:' string', 要求:是的, 独特:真实 },
password: {
type: 'string',
required: true
},
type: {
type: 'number',
columnType: 'integer'
},
last_x_map: {
type: 'number',
columnType: 'float'
},
last_y_map: {
type: 'number',
columnType: 'float'
},
places :{
collection: 'place',
via: 'user_owner'
},
},
validationMessages: {
username:{
required: '...',
alphanumericdashed: '...',
unique: '...'
},
password: {
required: '...'
}
},
但它总是返回虚假而且没有任何东西。
问题出在哪里?
或者你对此有何看法?
非常感谢。
答案 0 :(得分:0)
我的sails.js 版本是1.4.0
这个"sails-hook-organics": "^2.0.0"
,是提供sails.js 密码助手来散列和检查散列密码的依赖项
此代码将用户的散列密码存储在 Users 数据存储区中:
var newUserRecord = await Users.create({
name: name,
email: newemail,
password: await sails.helpers.passwords.hashPassword(password),
})
.intercept('E_UNIQUE', 'emailAlreadyInUse')
.intercept({ name: 'UsageError' }, 'invalid')
.fetch();
var userRecord = await Users.findOne({
email: email.toLowerCase(),
});
await sails.helpers.passwords.checkPassword(password, userRecord.password)
.intercept('incorrect', 'badCombo');
return this.res.redirect('/dashboard');
如果您的密码与散列密码不匹配,则会出现 badcombo 错误,否则会重定向到仪表板