2017-08-19 18 views
1

私はLaravel 5.4を使用しています。私はハッシングが一方的なことだと知っています。パスワードをハッシュしてデータベースに保存しました。ユーザーのパスワードを確認したいときは、入力したパスワードをハッシュし、データベースのハッシュ文字列でチェックしました。 laravelでAuth ::はLaravelでパスワードを確認する方法を教えてください。

私はコードの下に記述する必要があります。

$email = $request['email']; 
$pass = $request['password']; 

if(Auth::attempt(['email'=> $email , 'password' => $pass])){ 
     //return something 
    } 

bcrypt($request['password']);する必要はありません。

eventhough私はbcryptを使用しなければならないたびにハッシュ文字列が異なります。

どのようにAuth::attemptパスワードを確認するためのbcryptのハッシュパスワード。


私はbcryptを使用しながら、どのようにAuth::attempt作品という説明が必要。私はコードを実装しパスワードを確認する方法を知っています。

+0

bcryptを使用すると、チャレンジで解読できない形式ではなく、正確な文字列が確認されません。 – C2486

+0

例同じ文字列を与えると他のパスワードを推測することができます – C2486

+0

彼らはすでに 'Auth :: attempt'関数でビルドされています!だから、その機能をチェックしてください。 –

答えて

0

Laravelアプリケーションに組み込まれているLoginControllerおよびRegisterControllerクラスを使用している場合は、登録と認証に自動的にBcryptが使用されます。このリンクを参照することができます詳細については

https://laravel.com/docs/5.4/hashing

Laravelが使用するハッシュ方式が異なるハッシュ(でも、同じ文字列のために)毎回.ITではなく、両方の文字列をハッシュし、それらを比較しませんが生成さ非ハッシュ文字列を使用してハッシュと比較します。

checkメソッドを使用すると、特定のプレーンテキスト文字列が特定のハッシュに対応することを確認できます。

if (Hash::check('plain-text', $hashedPassword)) { 
    // The passwords match... 
} 
+0

私はbcryptを使うことができます。私は彼らもbcryptを使用することを知っています。私はちょうど彼らがハッシュ文字列をチェックする方法を知りたいのですが、同じ入力を持つすべてのbcrypt関数の結果が異なっているかもしれません。 – AMH

+0

ハッシュ文字列と比較しません。プレーンテキスト '、$ hashedPassword)){} –

+0

これはあなたが理解するのに役立つことを願っています。ご質問がある場合はお知らせください。 –

1

password_verify()と呼ばれるPHPの関数があります:あなたはLoginControllerはLaravelに含まれて使用している場合は、このコントローラは、自動的にこのメソッドを呼び出しますしかし、あなたはおそらく、直接これを使用する必要はありません。 Laravelは同じ機能を使ってパスワードとハッシュを比較します。

+1

「ハッピーフライデー」などの給料を使わないようにしましょう。 – FrankerZ

関連する問題