是否有办法对路线应用速率限制,但仅限于成功响应。例如,如果用户向 send/code
端点发送请求 5 次,如果全部成功,则阻止用户再次发送请求。但是,如果其中 2 次失败(例如验证错误或其他问题),但 3 次成功,则用户应该在给定时间内再尝试 2 次。
我知道在执行请求之前进行速率限制检查,然后阻止或让用户继续。但是有没有办法应用我的逻辑,或者我应该尝试不同的方法?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这是源代码
}
假设我的网址是 Example.com/test_Rate_Limit_only_success。
在此示例中,当用户向系统发送请求时,应用程序仍会验证该请求(如果出现错误,用户将发送无限制的请求)。在数据有效的情况下,限速部分将开始工作。
您可能需要制作自己的中间件,但您可以扩展
ThrottleRequests
类并自定义您想要处理响应的方式:然后将您的中间件添加到
Kernel.php
:然后像原来的throttle中间件一样在路由中使用它:
注意:如果您想返回从
RateLimiter::for
构建的自定义响应,您可能必须重写handleRequestUsingNamedLimiter
,我在这里没有为此做任何事情。