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'));
    });
}

ご覧のとおり、1 分間に 5 つのリクエストが表示されます。ただし、最初のリクエストの後に間違ってログインしようとすると、エラーが発生し続けました429: Too Many Requests。これは、一度しかログインできないためです。

8.0 と 8.1.2 の両方の PHP バージョンを試しました。

アップデート:

Laravel v8も試しました。

開発環境: Laragon も Laradock (docker) で試してみましたが、それでも同じ問題が発生します。

4

0 に答える 0