2016-02-10 193 views

回答

1

首先,您需要users表中的status列以將用戶標記爲活動或非活動狀態。

檢查用戶身份登錄時您需要修改此文件:

project_folder\vendor\laravel\framework\src\Illuminate\Foundation\Auth\AuthenticatesUsers.php 

您可以更改validateLogin()方法。我假設,對於活動用戶,狀態碼是10,用於非活動用戶。您的代碼應該是這樣的:

protected function validateLogin(Request $request) 
{ 
    $this->validate($request, [ 
     $this->loginUsername() => 'required', 'password' => 'required', 'status' => 1, 
    ]); 
} 
+0

不起作用。您可以添加: '$ this-> loginUsername()=>'required | exists:用戶名,用戶名,狀態,1'' –

1

在驗證\ AuthController.php,添加此功能(我假設用戶狀態的列名是「IS_ACTIVE」):

上Laravel 5.2
public function authenticated($request, $user) { 
     if ($user->is_active != 'Y') { 
      Auth::logout(); 
      return redirect('login')->withErrors([ 
       $this->loginUsername() => 'Your '.$this->loginUsername().' is not active. Please contact Administrators' 
      ]); 
     }else { 
      return redirect()->intended($this->redirectPath()); 
     } 
    } 
+0

Ok Laravel 5.2 –

+0

我已經添加了此方法,但它不工作。我正在使用laravel 5.2。 – PSN