volistx/lumen-rate-limiting

Laravel ThrottleRequests 中间件的 Lumen 版本

1.1.0 2022-02-17 20:08 UTC

This package is not auto-updated.

Last update: 2022-10-14 21:53:03 UTC


README

Lumen Rate limiting

Total Downloads Latest Stable Version License

关于

此包包含 Laravel 的 ThrottleRequests 中间件 的 Lumen 版本

安装

  1. 在您的 Lumen 应用程序中要求此包
composer require rogervila/lumen-rate-limiting
  1. 确保在 bootstrap/app.php 中取消注释 AppServiceProviderAuthServiceProvider
$app->register(App\Providers\AppServiceProvider::class);
$app->register(App\Providers\AuthServiceProvider::class);
  1. AppServiceProviderboot 方法上配置速率限制器
/**
 * Configure global rate limiter
 *
 * @return void
 */
public function boot()
{
    app(\Illuminate\Cache\RateLimiter::class)->for('global', function () {
        return \Illuminate\Cache\RateLimiting\Limit::perMinute(60)->by(request()->ip());
    });
}
  1. bootstrap/app.php 上注册中间件
$app->routeMiddleware([
    'throttle' => \LumenRateLimiting\ThrottleRequests::class,
]);
  1. bootstrap/app.php 上将中间件添加到全局路由组
$app->router->group([
    'namespace' => 'App\Http\Controllers',
    'middleware' => 'throttle:global',
], function ($router) {
    require __DIR__ . '/../routes/web.php';
});

中间件可以放置在特定路由上,而不是全局,具体请参考 官方文档

许可证

此项目是开源软件,遵循 MIT 许可