Дросселирование в Ларавеле - PullRequest
0 голосов
/ 31 января 2019

Может ли кто-нибудь помочь мне с Throttling Laravel?Прямо сейчас мой веб-сайт использует регулирование, чтобы запретить пользователю входить в систему в течение «х» секунд, если введенный пароль неверный в течение «х» числа раз.

После входа в систему пользователю потребуется двухфакторная аутентификация для обновления своей информации, но я также хотел бы ограничить Two-FA, чтобы он не мог обновлять свою учетную запись.Я на самом деле могу использовать коды регулирования входа в систему, чтобы заблокировать пользователя, но проблема в том, что, когда пользователь выходит из системы, он не сможет войти в систему из-за временной блокировки.

Я хотел бы создать собственный газ для Two-FA и, возможно, запретить пользователю доступ к этому конкретному маршруту в течение «х» секунд.

Я пробовал искать, но все связано с логином.Если кто-то может предложить мне пакет, который будет соответствовать моим требованиям или предоставить простой вариант.будет действительно полезным для меня.Спасибо за ваше время.

1 Ответ

0 голосов
/ 31 января 2019

Все это изложено в черте ThrottlesLogins, но я постараюсь упростить ее еще больше.

Создание уникального ключа для пользователя и типа запроса:

$key = '2fa:' . $user->id;

Добавление попадания (счетчик приращений) в каждый запрос к конечной точке с использованием класса Illuminate\Cache\RateLimiter:

app(RateLimiter::class)->hit($key, $timeoutInMinutes);

Проверьте, достигнут ли лимит перед обработкой запроса:

$bool = app(RateLimiter::class)->tooManyAttempts($key, $maxAttempts, $timeoutInMinutes);
...