Laravel 6: ログイン試行回数, ロック時間 の規定回数とエラーメッセージを変更

  • バージョン
    • Laravel: 6.16.0

ログイン試行回数, ロック時間 の既定値を変更

app/Http/Controllers/Auth/LoginController.php のメンバ変数に $maxAttempts $decayMinutes を追加

class LoginController extends Controller
{
    use AuthenticatesUsers;

    // 追加
    protected $maxAttempts = 1;    // ログイン試行回数
    protected $decayMinutes = 1;   // ロック時間 (分)

規定回数ログイン失敗した場合のエラーメッセージを変更

ThrottlesLogins トレイトの sendLockoutResponse() をオーバーライド

class LoginController extends Controller
{
    use AuthenticatesUsers;

    protected function sendLockoutResponse(Request $request)
    {
        $seconds = $this->limiter()->availableIn(
            $this->throttleKey($request)
        );

        throw ValidationException::withMessages([
            $this->username() => ['hgoe'], //任意のエラーメッセージに変更
        ])->status(Response::HTTP_TOO_MANY_REQUESTS);
    }