Laravel: 不同路径的不同 api 速率限制
Laravel: different api rate limits for different paths
我需要为不同的路径设置不同的速率限制。
敌人例子:
在路径 /users 上,我希望将速率限制为每分钟 60 个请求,而对于路径 /stats 我希望速率限制为每分钟仅 5 个请求。
我尝试了下一种方法
Route::group(['middleware' => ['auth', 'throttle:60']], function(){
Route::get('users', 'User@list');
});
Route::group(['middleware' => ['auth', 'throttle:5']], function(){
Route::get('stats', 'User@stats');
});
不知何故,应用了最后的速率限制。但是,当在用户路径上发出请求时,X-Rate-Limit-Limit header 设置为 60,但是当它到达第 6 个请求时抛出 "Too many requests" 错误。
您可能想尝试注释掉 line 40 of the Kernel.php
上的默认速率,因为您在每个中间件组中指定它以避免冲突。
您可能还想更改中间件以包含第二个参数,即在下一个请求到来之前等待的时间。(例如 throttle:60,1
)
我需要为不同的路径设置不同的速率限制。 敌人例子:
在路径 /users 上,我希望将速率限制为每分钟 60 个请求,而对于路径 /stats 我希望速率限制为每分钟仅 5 个请求。
我尝试了下一种方法
Route::group(['middleware' => ['auth', 'throttle:60']], function(){
Route::get('users', 'User@list');
});
Route::group(['middleware' => ['auth', 'throttle:5']], function(){
Route::get('stats', 'User@stats');
});
不知何故,应用了最后的速率限制。但是,当在用户路径上发出请求时,X-Rate-Limit-Limit header 设置为 60,但是当它到达第 6 个请求时抛出 "Too many requests" 错误。
您可能想尝试注释掉 line 40 of the Kernel.php
上的默认速率,因为您在每个中间件组中指定它以避免冲突。
您可能还想更改中间件以包含第二个参数,即在下一个请求到来之前等待的时间。(例如 throttle:60,1
)