Laravel RateLimiter/throttle 增加衰减分钟数
Laravel RateLimiter/throttle increasing decay minutes
在 Laravel 中,您可以限制某些请求。例如,您可以通过中间件或 RateLimiter 将您的登录请求限制为每分钟最多 5 次尝试:
RateLimiter::for('login', function (Request $request) {
return (new Limit('login', '5', 1))
->by($request->email.$request->ip());
});
本代码示例中,'5'
表示每分钟最大请求数,1
表示衰减分钟数(每次达到限制,用户将被锁定退出 1 分钟)。
但是,如何在每次达到限制时增加 decayMinutes
?例如,您每次如何将此金额加倍?
信息:我正在使用 Breeze 和 Laravel 8,它会安装 app\Requests\Auth\LoginRequest
。此文件是我进行更改的地方。
为了自定义 Laravel Breeze 尝试和衰减时间,有两行重要的代码。如果你只是想找出它们:
尝试次数
RateLimiter::tooManyAttempts($this->throttleKey(), 5)
衰减时间
RateLimiter::hit($this->throttleKey());
RateLimiter::tooManyAttempts
(你可以看到)将一个数字作为它的第二个参数(在5
之上)这是允许某人尝试的次数。
RateLimiter::hit
接受未显示的第二个参数,我可以通过将其添加到以下内容来将我的时间延长到 5 分钟:
RateLimiter::hit($this->throttleKey(), 300);
在 Laravel 中,您可以限制某些请求。例如,您可以通过中间件或 RateLimiter 将您的登录请求限制为每分钟最多 5 次尝试:
RateLimiter::for('login', function (Request $request) {
return (new Limit('login', '5', 1))
->by($request->email.$request->ip());
});
本代码示例中,'5'
表示每分钟最大请求数,1
表示衰减分钟数(每次达到限制,用户将被锁定退出 1 分钟)。
但是,如何在每次达到限制时增加 decayMinutes
?例如,您每次如何将此金额加倍?
信息:我正在使用 Breeze 和 Laravel 8,它会安装 app\Requests\Auth\LoginRequest
。此文件是我进行更改的地方。
为了自定义 Laravel Breeze 尝试和衰减时间,有两行重要的代码。如果你只是想找出它们:
尝试次数
RateLimiter::tooManyAttempts($this->throttleKey(), 5)
衰减时间
RateLimiter::hit($this->throttleKey());
RateLimiter::tooManyAttempts
(你可以看到)将一个数字作为它的第二个参数(在5
之上)这是允许某人尝试的次数。
RateLimiter::hit
接受未显示的第二个参数,我可以通过将其添加到以下内容来将我的时间延长到 5 分钟:
RateLimiter::hit($this->throttleKey(), 300);