In the previous lecture, we have seen the login register part and in this tutorial, we are going to show how to create middleware and register it. how to apply middleware on group route …..
Create a middleware using the below command
php artisan make:middleware Adminmiddleware
Then go to the app/http/middleware/Adminmiddleware.php and paste the below code.
public function handle(Request $request, Closure $next)
{
// return $next($request);
if(Auth::check())
{
if(Auth::user()->role=='1') //1 means admin
{
return $next($request);
}else{
return redirect('/home')->with('status','Access denied you are not admin');
}
}else{
return redirect('/home')->with('status','Please Login First');
}
}
Note: Don't forget to use Auth on top
use Illuminate\Support\Facades\Auth;
Now we have to register the middleware. Go to the app/http/kernel.php file. and register it like below
Under the route middleware
'isAdmin' => \App\Http\Middleware\Adminmiddleware::class,
Now go to the app/http/controllers/Auth/LoginController.php file and comment on the below part
// protected $redirectTo = RouteServiceProvider::HOME;
We will create our own redirect rules as per the role.
protected function authenticated(){
if(Auth::user()->role=='1'){
return redirect('dashboard')->with('status','Welcome to your Dashboard');
}elseif(Auth::user()->role=='0'){
return redirect('dashboard')->with('status','Login successfully')
}
}//End Method
Now we have to create group middleware and apply our newly created Aminmiddleware
Go to the route folder and open the web.php file and create a group middleware
Route::middleware(['auth','isAdmin'])->group(function(){
Route::get('/dashboard',function(){
return "This is Admin";
});
});
Now create one more user and try to login . If the role is admin it will show the message that This is Admin and if the role is user it will redirect to http://127.0.0.1:8000/home page. Make sure first we have to change our user role for admin as set 1. So go to the phpmyadmin and users table set role as 1.
Thanks for reading………