在laravel中覆盖登录身份验证

时间:2017-05-16 03:17:50

标签: laravel laravel-5 laravel-5.3

我的laravel版本为5.3。我在laravel中使用内置身份验证来登录用户。

用户表中的列名称为status。当它为0时,表示用户无法登录。

现在我不知道如何在登录方法/用户之前检查此列。 我不希望用户在status列为0时可以登录。

1 个答案:

答案 0 :(得分:4)

您可以覆盖authenticated()功能:

 protected function authenticated()
    {
      if (auth()->user()->status==0) {
          auth()->logout();
          return redirect('/');
      } 
    }

您也可以Manually authenticate users重写authenticate()功能:

public function authenticate()
    {
         if (Auth::attempt(['email' => $email, 'password' => $password, 'status' => 1])) 
         {
             // Authentication passed...
          }
     }