2017-06-13 4 views
0

を使用するlaravel 5アプリで作業するユーザーは登録してログインすることができます。一部のユーザーを無効にする機能があります。結果として、無効になっているユーザーは、有効になるまでログインできなくなります。登録ユーザーのうち、Laravelのアプリからのログインを制限する

私はフィールドactiveusersテーブルを持っています。

私はLoginControllerとAuthenticatesUsersの特性を調べました。しかし、ユーザーが無効になっているかどうかを確認する手がかりはありませんでした。

手がかりや助け?

編集:中にログに使用AuthenticatesUsers特性

P.S.。 次のコードは、

trait AuthenticatesUsers 
{ 
    use RedirectsUsers, ThrottlesLogins; 

    public function showLoginForm() 
    { 
     return view('auth.login'); 
    } 

    public function login(Request $request) 
    { 
     $this->validateLogin($request); 

     if ($this->hasTooManyLoginAttempts($request)) { 
      $this->fireLockoutEvent($request); 

      return $this->sendLockoutResponse($request); 
     } 

     if ($this->attemptLogin($request)) { 
      return $this->sendLoginResponse($request); 
     } 

     $this->incrementLoginAttempts($request); 

     return $this->sendFailedLoginResponse($request); 
    } 

    protected function validateLogin(Request $request) 
    { 
     $this->validate($request, [ 
      $this->username() => 'required', 'password' => 'required', 
     ]); 
    } 

    protected function attemptLogin(Request $request) 
    { 
     return $this->guard()->attempt(
      $this->credentials($request), $request->has('remember') 
     ); 
    } 

    protected function credentials(Request $request) 
    { 
     return $request->only($this->username(), 'password'); 
    } 

    protected function sendLoginResponse(Request $request) 
    { 
     $request->session()->regenerate(); 

     $this->clearLoginAttempts($request); 

     return $this->authenticated($request, $this->guard()->user()) 
       ?: redirect()->intended($this->redirectPath()); 
    } 

    protected function authenticated(Request $request, $user) 
    { 
     // 
    } 

    protected function sendFailedLoginResponse(Request $request) 
    { 
     return redirect()->back() 
      ->withInput($request->only($this->username(), 'remember')) 
      ->withErrors([ 
       $this->username() => Lang::get('auth.failed'), 
      ]); 
    } 

    public function username() 
    { 
     return 'email'; 
    } 

    public function logout(Request $request) 
    { 
     $this->guard()->logout(); 

     $request->session()->flush(); 

     $request->session()->regenerate(); 

     return redirect('/'); 
    } 

    protected function guard() 
    { 
     return Auth::guard(); 
    } 
} 
+0

訪問あなたはユーザー –

+0

を認証するために使用しているコードを共有してください詳しくは

protected function credentials(Request $request) { $c = $request->only($this->username(), 'password'); return array_merge($c, ['active' => true]); } 

のようにそれを行うことができ、私が書いていないlaravel付属しました@GuyS編集した質問をご覧ください。 – MASh

+0

ここをクリックしてくださいhttps://laracasts.com/discuss/channels/laravel/how-to-add-extra-logic-on-login-condition-in-laravel-52 –

答えて

関連する問題