質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

1回答

4334閲覧

Laravel8 + JetStream(fortify) にてログイン失敗時の試行回数、アカウントロック時間の設定をしたい

nobbyroad

総合スコア1

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

1グッド

0クリップ

投稿2020/11/15 03:30

前提・実現したいこと

Laravel8 + JetStream(fortify) にてログイン失敗時の試行回数、アカウントロック時間の設定をしたいのですが、
以前のバージョンであればLoginController.phpに後述の記載すればできたようですが、
JetStream(fortify)ではどうすればよいのでしょうか?

尚、当方Laravel についてあまり詳しくありません。
アドバイス頂けますと幸いです。

以前のLoginController.phpでの記載

class LoginController extends Controller { /* |-------------------------------------------------------------------------- | Login Controller |-------------------------------------------------------------------------- | | This controller handles authenticating users for the application and | redirecting them to your home screen. The controller uses a trait | to conveniently provide its functionality to your applications. | */ use AuthenticatesUsers; protected $maxAttempts = 2; // ログイン試行回数(回) protected $decayMinutes = 10; // ログインロックタイム(分)

補足情報(FW/ツールのバージョンなど)

Larabel8 JetStream(fortify)

watasida👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

config/fortify.phpで設定できるけどどう見ても説明不足。
https://github.com/laravel/fortify/blob/e4d2915dcc576fae27b34d1a189e8ac8602a1b42/stubs/fortify.php#L105

/* |-------------------------------------------------------------------------- | Rate Limiting |-------------------------------------------------------------------------- | | By default, Fortify will throttle logins to five requests per minute for | every email and IP address combination. However, if you would like to | specify a custom rate limiter to call then you may specify it here. | */ 'limiters' => [ 'login' => null, ],

まず使われてるのはここ
https://github.com/laravel/fortify/blob/e4d2915dcc576fae27b34d1a189e8ac8602a1b42/routes/routes.php#L31

$limiter = config('fortify.limiters.login'); Route::post('/login', [AuthenticatedSessionController::class, 'store']) ->middleware(array_filter([ 'guest', $limiter ? 'throttle:'.$limiter : null, ]));

throttle:apiと同じようにリミッター名を指定すればいいと分かる。

RouteServiceProviderのconfigureRateLimiting()でapi用を真似て新しい定義を作る。

RateLimiter::for('login', function (Request $request) { return new Limit('', 2, 10); });

それをconfig/fortify.phpで設定すればいい。

'limiters' => [ 'login' => 'login', ],

Jetstreamは初心者向けではないのでbreeze使ったほうがカスタマイズしやすくて簡単。
https://github.com/laravel/breeze/blob/d37851668e00ff152e432d840c1e8038941f4a96/stubs/App/Http/Requests/Auth/LoginRequest.php

投稿2020/11/15 05:08

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nobbyroad

2020/11/15 05:46

ご指摘の方法でできました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問