Можно ли как то ограничить время на запрос через RateLimiter в секундах в Laravel 10?

Рейтинг: 0Ответов: 0Опубликовано: 02.08.2025

Хочу ограничить ajax запросы, например 1 запрос в 5 секунд не чаще, использую Laravel 10 версии. Я сделал вот так

RateLimiter::for('test', function ($request) {
              return Limit::perMinute(1)->by($request->user()->id ?? $request->ip())->response(function() {
                    return new Response('Слишком частые запросы.');
                });
          });

Я прочитал, что в Laravel 10 и менее есть метод perMinute, но нет метода perSecond, который появился в версиях 11+... Вопрос, можно ли как то не обновляя Laravel до 11+ версии добавить ограничение времени в секундах?

Что я пробовал, найдя какую то инфу по этому вопросу (Не рабочий пример)

use Illuminate\Support\Time;

RateLimiter::for('test', function ($request) {
              return Limit::perMinute(10)->by($request->user()->id ?? $request->ip())->times(5)->response(function() {
                    return new Response('Слишком частые запросы.');
                }); // Раз в 5 сек - ошибка сервера 500 (Internal Server Error)

          });

Ответы

Ответов пока нет.