2017-03-10 17 views
1

私はすべてのユーザーがアカウントを持つ販売システムを開発しています。私はbcryptのでパスワードを保存し、ユーザーを認証し、次のようにLaravel認証ライブラリを使用するには:Laravel - DBで暗号化された別の値で確認する方法

販売画面の点で
$data = $request->only('user', 'password');   
if (\Auth::attempt($data)){ 
    #redirect dashboard 
} 

、ユーザーがPINを必要とする特別な製品を追加することができます(PINは、一部のユーザーのパスワードとは、特権)。

私はボタンをクリックして販売を保存すると、私のリクエストクラスに私はこの検証を追加します(私はいくつかの特別な製品があるかどうかを確認する必要があります。 、私はこのコードを使用します。

$allowed_pin = true; 
    foreach (Request::get('products') as $product) { 
     if($product["special_perm"] === "1"){ 
      $pin = $product["pin"]; 
      $user = User::where('password', '=', bcrypt($pin))->first(); 
      if ($user) { 
       $allowed_pin = true; 
      } else { 
       $allowed_pin = false; 
      } 
     } 
    } 

問題は、私はRequestクラスにパスワードを比較したときに、私は()DDを使用している場合、それは「$ 2Y $ 10 $ AasS5/FTWv28PmYuABfqve4Ao6m1U9zxdUE6ZoHJWcfpn19sd4wcG」私を見ると、データベースにハッシュされた実際のパスワードは「あるあります$ 2y $ 10 $ DmefHppecIjuanjRbcj82OPyjhi.L0/4YGd62LYCvkDTGjXxL25fG " と一致しません。 Authクラスは、bcryptとは異なる内部暗号化を使用していますか?

答えて

1

LaravelのドキュメントチェックHash::check('plain-text', $hashedPassword)

を使用し、暗号化された1プレーンテキストのパスワードを比較するには:https://laravel.com/docs/5.4/hashing

関連する問題