【问题标题】:Error: data and salt arguments required (am i missing something)?错误:需要数据和盐参数(我错过了什么)?
【发布时间】:2017-01-11 00:34:18
【问题描述】:
app.post('/verify', function(req, res) {
// Create a password salt
var salt = bcrypt.genSaltSync(10);
    // Salt and hash password
var passwordToSave = bcrypt.hashSync(password_login, salt)

   var user_login = req.body.email;
   var password_login = req.body.password;


        connection.query('SELECT * FROM USER WHERE email = ?',
         [user_login],
          function(err, rows) {
            if (err) {
                        return done(err);
                    }
            if (bcrypt.hashSync(password_login, salt) === rows[0].password) {
                console.log('works');
        }

        });

    });

错误:需要数据和盐参数! 有人能帮我吗?这是怎么回事?

如我所见,我无法理解 bcrypt 的逻辑。 在 MySql 上,密码字段是散列的,但不适合,或者我可以说它没有与任何东西进行比较......也许我应该使用 compare 是否 bycrypt 使用任何东西?

【问题讨论】:

    标签: javascript mysql node.js bcrypt


    【解决方案1】:

    您不能使用bcrypt.hashSync(password_login, salt) == password,因为您使用的是随机盐,这意味着它与存储的密码不匹配。

    您需要使用bcrypt.compareSync(password_login, hashedPassword) hashedPassword 来自您使用提交的电子邮件在数据库上运行的选择。 (例如hashedPassword= rows[0].password

    【讨论】:

    • 你是什么意思 hashedPassword 来自你在数据库上运行的选择?它不声明! PS
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    相关资源
    最近更新 更多