2016-10-20 18 views
1

Laravelの新機能です。これまではCodeIgniterを使用していました。Laravel 5.2ユーザーが間違ったパスワードで3回ログインしようとすると、アカウントがロックされます。

ユーザーが を間違ったパスワードで3回ログインしようとすると、ユーザーをロックするシステムを実装しようとしています。

ユーザーは、ログインに使用するメールアドレスとパスワードを使用します。

これは私がやったことです。 /laravel/framework/src/illuminate/Foundation/Auth/AuthenticateUsers.php で

  1. ユーザーが間違ったパスワードで ログインに3回を試みた場合、私は新しいページにユーザーをリダイレクトするようにコードを書くことができます。

コード:

return redirect('/lockout')->with('warning', 'You are permanently log out. Please contact the System Administrator'); 

次私がしたい:

  1. は、ロックされたユーザテーブル内の電子メールアドレスを探す
  2. ログインフォームに入力したメールアドレスのユーザーを取得します。
  3. 「ロックされた」列にチェックマークを付けてください

    コントローラ内にあります。

私は正しいトラックにいます。 提案がありますか?ユーザーは素晴らしいアイデアではありません間違ったパスワードでログインしようとした場合

おかげ

答えて

2

は、アカウントをロックします。誰でも自分のメールアドレスと間違ったパスワードを使用して誰かのアカウントをロックすることができます。代わりに、コントローラのthrottlelogins特性を使用してログイン試行を制限することができます。

use AuthenticatesAndRegistersUsers, ThrottlesLogins ; 

あなたはGrahamCampbell Laravel throttleThrottleMiddlewareを使用して試み、ログイン遅延時間を制限することができます。

use Illuminate\Support\Facades\Route; 

Route::get('foo', ['middleware' => 'GrahamCampbell\Throttle\Http\Middleware\ThrottleMiddleware:50,30', function() { 
     return 'Why herro there!'; 
}]); 

これは、50ヒットのリミットと30分のリテンションタイムを持つURLのミドルウェアをセットアップします。

+0

ありがとうSanzeeb Aryal。私はいくつかの助けを待っていた。私はAuthControllerでこのコードで同じことをしました:protected $ maxLoginAttempts = 3; //ユーザーが行うことができる不正な試行の量 \t //保護された$ lockoutTime = 2678400; //ユーザーが秒単位でブロックされる時間。 クライアントがユーザーをロックアウトしたいと考えています。助言がありますか。 – user1166240

+0

@ user1166240ユーザーをロックすることを強くお勧めします。特定の電子メールアドレスの '$ maxloginAttempts'を使うと、ユーザをソフト削除することができるので、アカウントを再度開くことができます。 –

+0

ありがとうSanzeeb Aryal。あなたの答えを教えてください。 softdelete meanと$ maxloginAttemptsはLaravelログインシステムの変数ですか? – user1166240

関連する問題