PasswordResetThrottle.php 634 B

12345678910111213141516171819202122232425
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\RateLimiter;
  6. use Symfony\Component\HttpFoundation\Response;
  7. class PasswordResetThrottle
  8. {
  9. public function handle(Request $request, Closure $next): Response
  10. {
  11. $key = 'password-reset:' . $request->ip();
  12. if (RateLimiter::tooManyAttempts($key, 5)) {
  13. $seconds = RateLimiter::availableIn($key);
  14. return back()->with('error', "Troppi tentativi. Riprova tra {$seconds} secondi.");
  15. }
  16. RateLimiter::hit($key, 3600); // 1 hour
  17. return $next($request);
  18. }
  19. }