【问题标题】:Laravel 5.7 dynamic rate limit not workingLaravel 5.7 动态速率限制不起作用
【发布时间】:2019-02-10 17:04:23
【问题描述】:

在我的 api 路由中,我有以下内容:

Route::group(['middleware' => 'throttle:rate_limit,1', 'prefix' => 'recruiter/v1', 'namespace' => 'Api\Recruiter\V1'], function ()
{

    Route::get('/products', 'ProductController@index');
 });

rate_limit 参数是我的用户表中的一个字段,设置为 100,但每分钟点击 60 次后,我似乎达到了限制。

在 kernal.php 我有:

'api' => [
        'throttle:60,1',
        'bindings',
],

现在文档没有提到在使用动态速率限制时需要将上述内容注释掉?

我认为动态速率限制的整个想法是能够设置您自己的限制,但显然不是 - kernal.php 中定义的任何值都会覆盖任何其他值,除非它低于 kernal.php 中定义的值。

【问题讨论】:

    标签: laravel-5.7 rate-limiting


    【解决方案1】:

    app/Http/Kernel.php 中为rate_limit 设置throttle 的最大值。

    【讨论】:

    • 对于“速率限制每秒 20 次查询”设置为 1200
    【解决方案2】:

    您正在节流两次。一次在您创建的组中,一次在 api 中。

    如果您查看主 RouteServiceProvider,您会看到 api 文件被您在内核中设置的 api 中间件包围。

    它会限制 api.php 文件中的所有路由。

    为避免这种情况从内核中的 api 中移除限制,请将您的路由移出 api.php 并制作另一个路由文件,或者您可以更改服务提供商以反映您需要的更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 2021-07-09
      • 2022-01-07
      • 2022-06-11
      • 1970-01-01
      相关资源
      最近更新 更多