覆盖 laravel 中的登录身份验证

S.M*_*ian 2 laravel laravel-5 laravel-5.3

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

用户表中有一个列名称为status。当它出现时,0意味着用户无法登录。

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

San*_*yal 5

您可以覆盖authenticated()函数:

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

您还可以通过覆盖函数来手动验证用户authenticate()

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