gpt4 book ai didi

php - Laravel - 限制特定 API 路由的速率

转载 作者:行者123 更新时间:2023-12-04 00:27:06 25 4
gpt4 key购买 nike

我目前正在开发一个 Laravel 驱动的站点,该站点由两个独立的服务器、一个 API 服务器和一个公共(public) Web 服务器(都运行 Laravel)提供支持。

API 有许多路由用于验证某些关键术语的可用性,例如电子邮件地址和 URL slug。这些路由通过 AJAX 调用以检查数据库,并在按键时触发。

正如预期的那样,每分钟触发多次 AJAX 请求,API 会引发“请求过多”错误。我知道这可以通过增加请求限制来解决,但是我只想对两条路由执行此操作,而不是所有路由。

如何禁用单个 API 路由的速率限制?

这是其中一条路线,非常标准:

Route::post('/email/is-available', function(Request $request) {

...

})->middleware('my_own_api_key_checking_middleware');

提前谢谢了!

最佳答案

您收到了太多的请求消息,因为 Laravel 默认将 throttle 中间件应用于所有 api 路由,要禁用它,请转到 app/Http/Kernel.php并删除或评论throttle来自属性 $middlewareGroups 的数组条目,这将禁用组中每个路由的限制。
现在在您的路线文件中将其添加到您想要的 route :

->middleware('throttle:240,1');

其中第一个数字是请求的限制,第二个是时间。

关于php - Laravel - 限制特定 API 路由的速率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55420929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com