2017-01-10 6 views
0
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ではパスワードフィールドがハッシュされていますが、フィットしていないか、何も比較していないと言えるでしょう。

答えて

1

bcrypt.hashSync(password_login, salt) == passwordはランダムな塩を使用しているため、保存されたパスワードと一致しません。

あなたはbcrypt.compareSync(password_login, hashedPassword)を使用する必要がありますhashedPasswordは、送信した電子メールを使用してデータベース上で実行した選択に由来します。 (例:hashedPassword= rows[0].password

+0

hashedPasswordはデータベースで実行された選択から何を意味していますか?それは宣言していない! P. – egzonszo

関連する問題