diff options
Diffstat (limited to 'app/Http/Middleware/RateLimiter.php')
-rw-r--r-- | app/Http/Middleware/RateLimiter.php | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/app/Http/Middleware/RateLimiter.php b/app/Http/Middleware/RateLimiter.php deleted file mode 100644 index 821868f..0000000 --- a/app/Http/Middleware/RateLimiter.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php - -namespace App\Http\Middleware; - -use Closure; -use Illuminate\Http\Request; -use Illuminate\Support\Facades\Cache; -use Symfony\Component\HttpFoundation\Response; - -class RateLimiter -{ - /** - * Handle an incoming request. - * - * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next - */ - public function handle(Request $request, Closure $next): Response - { - if (auth()->check()) { - return $next($request); - } - $ipAddress = $request->ip(); - $cacheKey = 'rate_limit_'.$ipAddress; - - if (Cache::has($cacheKey)) { - // If the cache key exists, the IP has submitted an entry within the last hour. - return response()->view('errors.guestbook-ratelimit', [], 429); - } - - // Add the IP address to the cache and set the expiration time to one hour. - Cache::put($cacheKey, true, 3600); - - return $next($request); - } -} |