РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
879 of 1392 menu

Метод hit

Метод hit класса RateLimiter применяется для инкрементации счетчика попыток выполнения определенного действия. Первым параметром передается ключ, идентифицирующий действие и пользователя, вторым параметром - количество попыток, на которое нужно увеличить счетчик (по умолчанию 1). Метод возвращает количество оставшихся попыток.

Синтаксис

<?php use Illuminate\Support\Facades\RateLimiter; $remaining = RateLimiter::hit($key, $decaySeconds); ?>

Пример

Давайте увеличим счетчик попыток для пользователя с id равным 1 при отправке формы:

<?php namespace AppHttpControllers; use IlluminateSupportFacadesRateLimiter; class FormController extends Controller { public function submit() { $key = 'submit-form:' . auth()->id(); $remaining = RateLimiter::hit($key, 60); echo "Remaining attempts: " . $remaining; } } ?>

Результат выполнения кода:

"Remaining attempts: 9"

Пример

Давайте увеличим счетчик на 3 попытки для API-запроса:

<?php namespace AppHttpControllers; use IlluminateSupportFacadesRateLimiter; class ApiController extends Controller { public function request() { $key = 'api-request:' . request()->ip(); $remaining = RateLimiter::hit($key, 60, 3); echo "Remaining attempts: " . $remaining; } } ?>

Результат выполнения кода:

"Remaining attempts: 7"

Пример

Давайте проверим, не превышен ли лимит попыток, перед выполнением действия:

<?php namespace AppHttpControllers; use IlluminateSupportFacadesRateLimiter; class AuthController extends Controller { public function login() { $key = 'login:' . request()->ip(); if (RateLimiter::tooManyAttempts($key, 5)) { $seconds = RateLimiter::availableIn($key); echo "Too many attempts. Try again in " . $seconds . " seconds."; return; } RateLimiter::hit($key, 60); echo "Login attempt recorded."; } } ?>

Результат выполнения кода:

"Login attempt recorded."

Смотрите также

  • метод attempt,
    который выполняет действие и увеличивает счетчик при успехе
  • метод tooManyAttempts,
    который проверяет превышение лимита попыток
  • метод remaining,
    который возвращает количество оставшихся попыток
  • метод clear,
    который сбрасывает счетчик попыток
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить