Laravel 8 Restrict User Access From IP Address
Laravel 8 restrict/block user access from IP address. In this tutorial, you will learn how to restrict or block a user by IP address for accessing the website.
Sometimes, you want to restrict users by specific IP addresses, So this tutorial will guide you step by step restrict users by specific IP addresses in laravel apps.
In this laravel restrict users by ip address, will create a custom middleware in laravel apps. This middleware filter users request by it’s ip address. If bad users request into your app this middleware block these user. This middleware allow only specific ip address users.
Laravel 8 Restrict User Access From IP Addresses Tutorial
Just follow the below steps and restrict user by ip address in laravel app:
- Install Laravel 8 App
- Connecting App to Database
- Create a Middleware
- Register the Middleware
Step 1: Install Laravel 8 App
In this step, use the following command and download fresh laravel setup:
composer create-project --prefer-dist laravel/laravel blog
Step 2: Connecting App to Database
In this step, Go to your project root directory, find .env file and setup database credential as follow:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name here
DB_USERNAME=here database username here
DB_PASSWORD=here database password here
Step 3: Create a Middleware
Next step, Run the following command to create a middleware named class BlockIpMiddleware:
1 | php artisan make:middleware BlockIpMiddleware |
Now, Go to app/Http/Middleware folder and open BlockIpMiddleware.php file. Then update the following code into your BlockIpMiddleware.php file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php namespace App\Http\Middleware; use Closure; class BlockIpMiddleware { // set IP addresses public $blockIps = [ 'ip-addr-1' , 'ip-addr-2' , '127.0.0.1' ]; /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle( $request , Closure $next ) { if (in_array( $request ->ip(), $this ->blockIps)) { return response()->json([ 'message' => "You don't have permission to access this website." ]); } return $next ( $request ); } } |
Step 4: Register the Middleware
Next step, register the middleware, so go to app/Http/ and open Kernel.php file. And register middleware as follow:
1 2 3 4 5 6 7 8 9 | protected $middlewareGroups = [ 'web' => [ //-------------- \App\Http\Middleware\BlockIpMiddleware::class, ], 'api' => [ //-------------- ], ]; |
0 comments:
Post a Comment
Thanks