Saltar al contenido

Inicie sesión con un usuario solo si su estado está activo en Laravel 5.7

Esta es la solución más correcta que encomtrarás aportar, pero primero mírala detenidamente y analiza si es compatible a tu trabajo.

Solución:

Tenga esto en su LoginController:

protected function credentials(Request $request)
        
   return ['username' => $request->$this->username(), 'password' => $request->password, 'status' => 1];

Simplemente toma el estado del usuario y verifica que el estado del usuario sea true o false. Puede tomar el estado usando Auth::User()->status de la sesión de autenticación. Prueba esto.

 if(Auth::attempt(['email'=>$request->email,'password'=>$request->password]))
                $userStatus = Auth::User()->status;
                if($userStatus=='1') 
                    return redirect()->intended(url('/dashboard'));
                else
                    Auth::logout();
                    Session::flush();
                    return redirect(url('login'))->withInput()->with('errorMsg','You are temporary blocked. please contact to admin');
                
            
            else 

                return redirect(url('login'))->withInput()->with('errorMsg','Incorrect username or password. Please try again.');
            

Simplemente ponga este código en su AppAuthLoginController o en otro lugar donde tenga su LoginController situado.

public function authenticate(Request $request)

    $credentials = $request->only('email', 'password');

    if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) 
        // Authentication passed...
        return redirect()->intended('dashboard');
    

con este código estás anulando el valor predeterminado authenticate función

Eres capaz de añadir valor a nuestra información dando tu experiencia en las crónicas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *