成功したリクエストのみのレート制限 (Laravel 9)
P粉807239416
P粉807239416 2024-01-05 19:47:03
0
2
486

成功した応答にのみレート制限をルートに適用する方法はありますか。たとえば、ユーザーが send/code エンドポイントにリクエストを 5 回送信し、すべてが成功すると、ユーザーはリクエストを再度送信できなくなります。ただし、そのうち 2 つが失敗し (検証エラーやその他の問題など)、3 つが成功した場合、ユーザーは指定された時間内にさらに 2 回試行する必要があります。

リクエストを実行する前にレート制限チェックを行ってからブロックするか、ユーザーを続行させる必要があることはわかっています。しかし、私のロジックを適用する方法はあるのでしょうか、それとも別のアプローチを試したほうがよいでしょうか?

P粉807239416
P粉807239416

全員に返信(2)
P粉986937457

これはソースコードです

リーリー

}

私の URL が Example.com/test_Rate_Limit_only_success であるとします。

この例では、ユーザーがシステムにリクエストを送信すると、アプリケーションは引き続きリクエストを検証します (エラーが発生した場合、ユーザーは無制限にリクエストを送信します)。データが有効になると、速度制限部分が動作し始めます。

いいねを押す +0
P粉512526720

独自のミドルウェアを作成する必要がある場合がありますが、ThrottleRequests クラスを拡張して、応答の処理方法をカスタマイズできます。 リーリー

次に、ミドルウェアを

Kernel.php に追加します: リーリー

その後、元のスロットル ミドルウェアと同様にルーティングで使用します:

リーリー

注:

RateLimiter::for から構築されたカスタム応答を返したい場合は、handleRequestUsingNamedLimiter をオーバーライドする必要がある場合があります。ここではそれについて何もしていません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート