Files
event-uploader/api/app/Http/Middleware/ThrottlePasswordVerification.php
2026-02-03 10:38:46 +01:00

27 lines
647 B
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Symfony\Component\HttpFoundation\Response;
class ThrottlePasswordVerification
{
public function handle(Request $request, Closure $next): Response
{
$key = 'password-verify:'.$request->ip();
if (RateLimiter::tooManyAttempts($key, 5)) {
$seconds = RateLimiter::availableIn($key);
return response()->json([
'message' => "Too many attempts. Please try again in {$seconds} seconds.",
], 429);
}
return $next($request);
}
}