Restrict User With IP in Laravel V10
We can easily restrict users with Ips in any laravel application. Restriction means you want to make your web application for a few users whose IPs you have added to the system. Then it’s very easy.
We need to make a middleware that will verify the IP addresses and redirect the user accordingly.
Create A Middleware
I assume that you know how to create a project in Laravel if you don’t please look at the documentation.
//create project composer create-project laravel/laravel app
php artisan make:middleware AllowOnlySpecificIPsMiddleware
Then add this code to the middleware PHP file.
<?php
namespace App\Http\Middleware;
use App\Models\AllowedIp; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use Symfony\Component\HttpFoundation\Response;
class AllowOnlySpecificIPsMiddleware { /**
- Handle an incoming request. *
- @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next */ public function handle($request, Closure $next) { $allowedIPs = AllowedIp::all()->pluck('ip_address')->toArray(); $clientIP = $request->ip(); $clientIP = $request->header('CF-Connecting-IP', $request->ip()); Log::info("client ip $clientIP " . json_encode($request)); if (in_array($clientIP, $allowedIPs)) { return $next($request); } abort(403, 'Unauthorized. Your IP address is not allowed'); } }
Explanation: Let me explain what we just did in the above code. We table called allowed_ip
which has been represented by AllowedIp
The model that we are using in the code AllowedIp::all()->pluck('ip_address')->toArray();
Now we are getting the client IP from $request->IP()
variable. After comparing if the IP exists in the table we can return the request else we will return a 403 (Reequest is unauthorized) error.
Now you can use this middleware in your routes.
Conclusion
I hope this article helps you. I just wrote this article to the point you may need to register this to use in routes etc. Thanks for reading.
How to use Middleware In Laravel v8
The post Restrict User With IP in Laravel V10 appeared first on Larachamp.