Можно ли как то ограничить время на запрос через RateLimiter в секундах в Laravel 10?
Хочу ограничить 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)
});
Источник: Stack Overflow на русском