Laravel 登录和注册:登录限制(防暴力破解) 2 个改进

如果你使用 Laravel 内置的 LoginController 类,Illuminate\Foundation\Auth\ThrottlesLogins trait 已经包含在该控制器中了。默认情况下,如果用户多次尝试却无法提供正确的登录凭据,那么该用户在一分钟内将不能再次尝试登录。这种限流策略基于用户的用户名 / 邮箱地址及其 IP 地址的唯一性。

自定义最多尝试次数

系统已为我们提供了限制功能,那么如何自定义每分钟内最多可尝试的次数呢。

找到 Illuminate\Foundation\Auth\ThrottlesLogins trait ,我们可以看到这个方法。

/**
 * Get the maximum number of attempts to allow.
 *
 * @return int
 */
public function maxAttempts()
{
    return property_exists($this, 'maxAttempts') ? $this->maxAttempts : 5;
}

由于 LoginController 默认继承了这个方法,我们可以很方便的在 LoginController 中加上:

protected $maxAttempts = 2;

其中 2 可以改为自定义最多尝试次数。

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 1

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!