2

我刚刚安装了 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) 但仍然是同样的问题。

4

0 回答 0