Как узнать количество попыток входа в Laravel? - PullRequest
0 голосов
/ 13 ноября 2018

Laravel версия 5.7 -

В настоящее время я пытаюсь получить количество попыток входа в систему.Документация Laravel не предоставляет руководство для этого.Но я думаю, что все ближе к тому, чтобы найти ответ самостоятельно, возвращая назад все вызываемые методы.

В любом случае, моя цель - показать количество «попыток входа в систему / максимальной попытки входа в систему» ​​до блокировки.

В Auth \ LoginController я легко могу получить количество maxAttempts и даже установитьмое максимальное количество попыток макс:

protected $maxAttempts = 3;

Отлично.Поэтому я создаю функцию для получения сведений о попытке входа в систему:

public function getCurrentAttempts() {
    $limiter = $this->limiter();

    $login_attempts = array(
        // gets the number of current login attempted
        'currentAttempts' => $limiter->hit('user'),

        // get the number of max attempts allowed
        'maxAttempts' => $this->maxAttempts(),

        // return 1 or 0 if current login attempts reached max attempts
        'locked' => $this->limiter()->tooManyAttempts('user', $this->maxAttempts())
    );

    return view('auth.login')->withLoginAttempts(
        $login_attempts
    );
}

Обратите внимание:

$this->limiter()->hit(key) <<< ожидает ключ.Я действительно не знаю, какой ключ он ожидает.Помогите кому-нибудь?Я набрал 'user', и по какой-то причине отправляет мне правильное количество попыток.Но правильно ли это?Это тот «ключ», которого ожидает <code>$limiter->hit()?Разве «ключ» не имеет ничего общего с Request?

Другие вещи, на которые стоит обратить внимание: достаточно просто, из LoginController я легко могу получить значение $ maxAttempts просто с помощью $this->maxAttempts(), это действительно хорошо.Но как насчет количества текущих попыток входа?Не было бы идеально иметь его в одном месте?Вот что я пытаюсь получить.

1 Ответ

0 голосов
/ 18 ноября 2018

Прочитав документы Laravel несколько раз, я начал пробовать различные классы, уже встроенные в фреймворк, которые позволили мне достичь своей цели (получение текущего количества попыток входа в систему)

В контроллере LoginController мы должныuse Illuminate\Http\Request; и затем путем внедрения метода, Request $request может быть захвачено в методе.

Затем я смог получить 'throttleKey', ключ, который мне был нужен примерно так: в теле метода LoginController, $this->limiter()->hit($this->throttleKey($request));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...