【发布时间】:2022-06-11 05:42:05
【问题描述】:
我刚刚安装了 Laravel 9 和 Laravel Fortify。但是登录功能的速率限制是错误的。
FortifyServiceProvider.php
public function boot()
{
Fortify::createUsersUsing(CreateNewUser::class);
Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class);
Fortify::updateUserPasswordsUsing(UpdateUserPassword::class);
Fortify::resetUserPasswordsUsing(ResetUserPassword::class);
RateLimiter::for('login', function (Request $request) {
$email = (string) $request->email;
return Limit::perMinute(5)->by($email.$request->ip());
});
RateLimiter::for('two-factor', function (Request $request) {
return Limit::perMinute(5)->by($request->session()->get('login.id'));
});
}
如您所见,它每分钟显示五个请求。但是,每当我在第一次请求后尝试错误登录时,它一直给我一个错误429: Too Many Requests。这是因为它只允许我登录一次。
我尝试了两个 PHP 版本,8.0 和 8.1.2。
更新:
我也试过 Laravel v8。
开发环境:Laragon 也尝试过使用 Laradock (docker) 但仍然是同样的问题。
【问题讨论】:
-
这只发生在 Laravel 9 上吗?
-
我有同样的问题。刚刚下载了 Laravel 8
-
您如何将速率限制器附加到路线上?
-
我没有将速率限制器附加到路线上。我只是按原样使用了 Fortify。限制器在
FortifyServiceProvider,