Laravel 5.6更改电子邮件地址会重置登录限制

时间:2018-11-19 01:09:10

标签: php laravel authentication login throttling

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 :(得分:0)

Laravel文档共享内置节流的细节

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

您可以阅读IP和电子邮件地址组合来跟踪登录尝试

我想,如果多个用户从同一个IP登录,那么他们都不会被锁定/限制

如果您希望ID采取不同的操作,则需要将其更改为使用ID或类似名称