Laravel 5.6 Изменение адреса электронной почты сбрасывает настройки входа в систему - PullRequest
0 голосов
/ 19 ноября 2018

Есть странная проблема с регулированием входа в систему laravel. Я устанавливаю переменные:

 public $maxAttempts = 5;
 public $decayMinutes = 3;

в файле Auth / LoginController.php и переопределите функцию sendLockoutResponse следующим образом:

protected function sendLockoutResponse(Request $request) {
  $seconds = $this->limiter()->availableIn(
      $this->throttleKey($request)
  );

  $minutes = floor($seconds / 60);
  $seconds = $seconds % 60;

  return back()->with('authError', 'Wait ' . $minutes . ' minutes and ' . $seconds . ' seconds.');
}

Когда я пытаюсь выполнить 5 неудачных попыток входа в систему с использованием неверных учетных данных, я вижу сообщение AuthError на странице. И если я продолжу с тем же адресом электронной почты, я продолжу видеть уменьшение секунд и минут. Но если я изменю адрес электронной почты, весь газ будет сброшен. У меня все еще есть 5 неудачных попыток.

У меня такой вопрос: если laravel определяет попытки входа пользователя по IP-адресу и использует кеш для их опроса, почему при изменении электронной почты сбрасывается газ входа в систему?

PS мои значения .env:

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
SESSION_SECURE_COOKIE=false
QUEUE_DRIVER=database

1 Ответ

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

Документы Laravel делятся сведениями о встроенном регулировании

https://laravel.com/docs/5.7/authentication#login-throttling

, поскольку вы можете прочитать IP-адрес и комбинацию адресов электронной почты, которые используются для отслеживания попыток входа в систему

Я полагаю, что если несколько пользователей входят в систему с одного и того же IP-адреса, все они не блокируются / не блокируются

Вам необходимо изменить это на использование идентификатора или аналогичного, если вы хотите, чтобы он действовал по-другому

...