问题描述
我正在使用 laravel8 (这仍然是新的)开发一个项目,并且我想隐藏一些自定义响应标题(以x-开头),例如:
X-RateLimit-Limit: 15
X-RateLimit-Remaining: 14
我想自定义此行为并隐藏这些标头,如何轻松地(在框架中)找到设置这些标头的代码
我的代码:
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