Настройка промежуточного программного обеспечения дроссельной заслонки
Если мы хотим ограничить его до 5 попыток в минуту.
Route::group(['prefix' => 'api', 'middleware' => 'throttle:5'], function () {
Route::get('people', function () {
return Person::all();
});
});
И если мы хотим изменить его так, чтобы, если кто-то достигнет предела,они не могут повторить попытку еще 10 минут.
Route::group(['prefix' => 'api', 'middleware' => 'throttle:5,10'], function () {
Route::get('people', function () {
return Person::all();
});
});
Обновление
Вам необходимо добавить флаг даты и времени в db banned_at и установить его, когда будет достигнут предел скорости.установите это время, добавив 30 минут к текущему времени, и сравните его, когда пользователь обращается к маршруту с помощью промежуточного программного обеспечения.когда пользователь получает доступ в течение 30 минут после достижения ограничения скорости, время в db banned_at будет больше текущего времени, и в этом случае вы можете заблокировать его.
Обновление
есть другой способ, посмотрите, можете ли вы установить переменную $ key в классе RateLimiter здесь https://github.com/laravel/framework/blob/5.3/src/Illuminate/Cache/RateLimiter.php#L38, я не смог найти способ установить ее
Надеюсь, это поможет вам.