성공적인 요청에 대해서만 속도 제한(Laravel 9)
P粉807239416
P粉807239416 2024-01-05 19:47:03
0
2
490

성공적인 응답에만 경로에 속도 제한을 적용하는 방법이 있습니까? 예를 들어 사용자가 send/code 엔드포인트에 5번 요청을 보낸 경우 모두 성공하면 사용자는 다시 요청을 보낼 수 없습니다. 그러나 그 중 2개가 실패하고(예: 유효성 검사 오류 또는 기타 문제) 3개가 성공하는 경우 사용자는 주어진 시간 내에 2번을 더 시도해야 합니다.

요청을 실행하기 전에 속도 제한을 확인한 다음 사용자를 차단하거나 계속하도록 허용하는 방법을 알고 있습니다. 하지만 내 논리를 적용할 수 있는 방법이 있습니까? 아니면 다른 접근 방식을 시도해야 합니까?

P粉807239416
P粉807239416

모든 응답(2)
P粉986937457

소스코드입니다

으아악

}

내 URL이 example.com/test_Rate_Limit_only_success라고 가정해 보겠습니다.

이 예에서 사용자가 시스템에 요청을 보내면 애플리케이션은 계속해서 요청의 유효성을 검사합니다(오류가 발생하면 사용자는 무제한 요청을 보냅니다). 데이터가 유효하면 속도 제한 부분이 작동하기 시작합니다.

P粉512526720

자신만의 미들웨어를 만들어야 할 수도 있지만 ThrottleRequests 클래스를 확장하고 응답 처리 방법을 사용자 정의할 수 있습니다.

으아아아

그런 다음 미들웨어를 Kernel.php에 추가하세요.

으아아아

그런 다음 원래의 스로틀 미들웨어와 같은 경로에서 사용하세요.

으아아아

참고: RateLimiter::for 构建的自定义响应,您可能必须重写 handleRequestUsingNamedLimiter에서 돌아가고 싶다면 여기서는 아무것도 하지 않았습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿