首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在sails.js中生成散列密码并将其存储在数据库中

问如何在sails.js中生成散列密码并将其存储在数据库中
EN

Stack Overflow用户
提问于 2018-04-06 21:37:00
回答 1查看 609关注 0票数 0

我想创建新用户并保存到数据库中的用户表中

我的行动如下:

代码语言:javascript
复制
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});
                }
      );
            }

    }
}  

我的用户模型是:

代码语言:javascript
复制
module.exports = {

属性:{用户名:{ type:'string',必需: true,唯一: true },

代码语言:javascript
复制
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: '...'
}

},

但它总是返回false,并且不做任何事情。

问题出在哪里?

或者你对此有什么建议?

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2021-02-16 17:56:17

我的sails.js版本是1.4.0

  • "sails-hook-organics": "^2.0.0",是提供散列和检查散列密码sails.js

的密码帮助器的依赖项

  • 此代码将用户的散列密码存储在Users数据存储中:

代码语言:javascript
复制
    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();

  • 使用以下代码检查密码:

代码语言:javascript
复制
    var userRecord = await Users.findOne({
      email: email.toLowerCase(),
    });
    await sails.helpers.passwords.checkPassword(password, userRecord.password)
      .intercept('incorrect', 'badCombo');
    return this.res.redirect('/dashboard');

如果您的密码与哈希密码不匹配,则会出现错误组合错误,否则会重定向至仪表板

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49694116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档