Categories

Friday, March 29, 2024
#919814419350 therichposts@gmail.com
Laravel

Laravel Create a custom middleware class that checks the user’s role

Laravel 7.2 routing with route group auth guard check with prefix

Laravel Create a custom middleware class that checks the user's role

Hell to all, welcome to therichpost.com. In this post, I will tell you, how to Create a Laravel custom middleware class that checks the user’s role?

Laravel now a days top php mvc framework. I am also learning laravel.

Here we start the code for Laravel custom middleware class that checks the user’s role:

1. First, we will create middleware with artisan command:

php artisan make:middleware Checkrole

2. Above command creates a file called Checkrole.php within the app/Http/Middleware directory that looks like and I have modified code little bit as my requirement for check user role:

<?php

namespace App\Http\Middleware;

use Closure;

class Checkrole
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        // hasRole being a function defined on your User model that checks
        // a user's assigned role(s).
        if (auth()->check() && auth()->user()->hasRole('BETA Tester')) {
            return $next($request);
        }

        abort(401, 'You are not allowed to access this page');
    }
}

 3. You then need to add the Checkrole Middleware to your app/Http/Kernel.php file:

protected $routeMiddleware = [
    'auth' => 'App\Http\Middleware\Authenticate',
    'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
    'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
    'admin' => 'App\Http\Middleware\Checkrole', // this line right here
];

 4. You can use the Checkrole Middleware to a route. (Within your routes.php file):

get('protected', ['middleware' => ['auth', 'checkuser'], function() {
    return "this page requires that you be logged in and an Admin";
}]);

 This is it, if you have any query related to this post, then please do comment or email me.

 

therichpost
the authortherichpost
Hello to all. Welcome to therichpost.com. Myself Ajay Malhotra and I am freelance full stack developer. I love coding. I know WordPress, Core php, Angularjs, Angular 14, Angular 15, Angular 16, Angular 17, Bootstrap 5, Nodejs, Laravel, Codeigniter, Shopify, Squarespace, jQuery, Google Map Api, Vuejs, Reactjs, Big commerce etc.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.