volistx/lumen-rate-limiting

Lumen port of Laravel ThrottleRequests middleware

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

About

This package contains Lumen port of Laravel's ThrottleRequests middleware

Install

  1. Require the package on your Lumen application
composer require rogervila/lumen-rate-limiting
  1. Make sure that AppServiceProvider and AuthServiceProvider are uncommented on bootstrap/app.php
$app->register(App\Providers\AppServiceProvider::class);
$app->register(App\Providers\AuthServiceProvider::class);
  1. Configure a rate limiter on the AppServiceProvider boot method
/**
 * 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. Register the middleware on bootstrap/app.php
$app->routeMiddleware([
    'throttle' => \LumenRateLimiting\ThrottleRequests::class,
]);
  1. Add the middleware to the global router group on bootstrap/app.php
$app->router->group([
    'namespace' => 'App\Http\Controllers',
    'middleware' => 'throttle:global',
], function ($router) {
    require __DIR__ . '/../routes/web.php';
});

The middleware can be placed on specific routes instead of globally, as defined on the official documentation.

License

This project is open-sourced software licensed under the MIT license.