Как применить другую задержку к разному количеству запросов в пределе скорости laravel?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как применить другую задержку к разному количеству запросов в пределе скорости laravel?

Сообщение Anonymous »

Я создаю промежуточное программное обеспечение для ограничения скорости, в котором мне нужно выполнить следующие функции
1: первая отправка происходит мгновенно, второй запрос попросит вас подождать 30 секунд, третий попросит подождать 60 секунд, четвертый будет попросить подождать 120 секунд (это по номеру)
2: Если IP отправляет 10 запросов в минуту, заблокируйте его на 3 часа.
но я застрял здесь, он не получает количество попыток, которые я Я не могу добавить пользовательскую функцию задержки. Подскажите, пожалуйста, где я ошибаюсь и что делать? я применяю их впервые

Код: Выделить всё

public function handle($request, Closure $next)
{
$limiter = app(RateLimiter::class);
$key = sha1($request->ip());
$maxAttempts = 4;
$hitCount = $limiter->attempts($key);
if ($hitCount == 2)
{
$decayMinutes = 30;
}
elseif ($hitCount == 3)
{
$decayMinutes = 60;
}
elseif ($hitCount == 4)
{
$decayMinutes = 120;
}
else
{
$decayMinutes = 10;
}
if ($limiter->tooManyAttempts($key, $maxAttempts))
{
$retryAfter = $limiter->availableIn($key);
return new Response('Rate limit exceeded. Please wait ' . $retryAfter . ' seconds before making another request.', 429);
}

$limiter->hit($key, $decayMinutes);
$response = $next($request);
return $response;
}
теперь этот код постоянно отправляет запрос без какого-либо ожидания.
Я пробовал это без каких-либо совпадений с максимальным количеством попыток 1, все работало нормально, но теперь я пытаюсь задать разную задержку для разного количества запросов, это не работает должным образом.

Подробнее здесь: https://stackoverflow.com/questions/783 ... vel-rate-l
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»