LARAVEL-使用限速中间件时自定义响应头

问题描述

我正在使用 laravel8 (这仍然是新的)开发一个项目,并且我想隐藏一些自定义响应标题(以x-开头),例如:

X-RateLimit-Limit: 15
X-RateLimit-Remaining: 14

enter image description here

我想自定义此行为并隐藏这些标头,如何轻松地(在框架中)找到设置这些标头的代码

我的代码


    protected function configureRateLimiting()
    {
        RateLimiter::for('api',function (Request $request) {
            return Limit::perMinute(15);
        });
    }

解决方法

假设我们可以创建一个新的's类,它将扩展原始的python's。并将方法App\Http\Middleware\ThrottleRequests重写为您自己的方法,该方法将返回空数组。

\Illuminate\Routing\Middleware\ThrottleRequests

然后您要做的就是更改getHeaders文件中的中间件定义。在属性“ namespace App\Http\Middleware; use Illuminate\Routing\Middleware\ThrottleRequests as OriginalThrottleRequests; /** ... */ class ThrottleRequests extends OriginalThrottleRequests { /** * @inheritdoc */ protected function getHeaders($maxAttempts,$remainingAttempts,$retryAfter = null) { return []; } } ”中注册“节流”中间件app/Http/Kernel.php,您可以更改为自己的实现$routeMiddleware

在我的情况下是:

\Illuminate\Routing\Middleware\ThrottleRequests::class