【发布时间】:2020-03-18 17:23:52
【问题描述】:
我的路线声明如下:
Route::group(['prefix' => 'media', 'middleware' => 'auth'], function() {
Route::group(['middleware' => 'throttle:120,1'], function() {
Route::get('/', 'MediaController@index'); // <-- Route in question
Route::delete('/{id}', 'MediaController@delete');
Route::patch('/{id}', 'MediaController@edit');
});
Route::post('/', 'MediaController@upload')->middleware('throttle:100,1440');
});
如果我正确理解限制中间件,当用户达到速率限制(1 分钟内 120 个请求)时,他应该在 1 分钟的剩余时间内受到限制,然后解除阻塞。
但是,阻塞时间高于 1 分钟。请参阅retry-after 标头:
(当我第一次注意到它时,它超过了 600 秒,所以并不总是 180 秒)
任何想法为什么会高于 1 分钟?
【问题讨论】:
-
尝试油门120,0并回复结果。
-
@user8555937
x-ratelimit-remaining始终保持在 120 并且请求不会受到限制 -
120 表示在达到油门限制之前可以发出的请求数量。它没有指定超过它的“惩罚”。
-
没错。我只是想知道将其设置为
120,1怎么可能比 1 分钟有更大的“惩罚”。 -
我做了更多的测试,看起来问题是我对不同的路由有不同的节流配置。就像你在这里看到的那样,上传路由有一个 24 小时的限制期,一旦用户点击它,他将在指定的时间内被锁定在所有路由之外。我需要做更多的测试,但看起来限制不是特定于路由的,就像我想的那样。
标签: php laravel laravel-6.2