Laravel:不同路径的不同api速率限制

时间:2017-04-29 16:41:37

标签: php laravel rate-limiting throttling

我需要为不同的路径设置不同的速率限制。 敌人的例子:

路径 / 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标头设置为60,但它会抛出太多请求"到达第6个请求时出错。

1 个答案:

答案 0 :(得分:4)

您可能想尝试在line 40 of the Kernel.php上注释掉默认费率,因为您要在每个中间件组中指定它以避免冲突。

您可能还想更改中间件,以包含等待时间长度的第二个参数,直到下一个请求进入。(例如throttle:60,1