Override default auth login method in laravel 8; Through this tutorial, you will learn how to override auth login method or function in laravel 8 applications.
Sometimes, you may need to customize the default login functionality into your laravel applications; So this tutorial will show how to customize the default auth login functionality or method in laravel.
How to Override Login Method in Laravel 8
See the following example for overriding auth login function in Laravel 8 applications:
First of all, open your web.php file and see the default login routes; as shown below:
Route::post('login', 'Auth\LoginController@login');
Then open your LoginController and find the login method into it; And change it according to your requirement; as shown below:
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Auth;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
/**
* Write code on Method
*
* @return response()
*/
public function login(Request $request)
{
$request->validate([
'email' => 'required',
'password' => 'required',
]);
$credentials = $request->only('email', 'password');
if (Auth::attempt($credentials)) {
return redirect()->route('home');
}
return redirect("login")->withSuccess('Oppes! You have entered invalid credentials');
}
}