rogervila/lumen-rate-limiting

Lumen port of Laravel ThrottleRequests middleware

2.0.0 2024-06-03 09:54 UTC

This package is auto-updated.

Last update: 2024-06-03 09:56:29 UTC


README

Lumen Rate limiting

Total Downloads Latest Stable Version License

About

This package contains a Lumen port of Laravel's ThrottleRequests middleware.

Check the package version compatibility based on your Lumen's project version:

Lumen lumen-rate-limiting
11.x 2.x
10.x 1.x
9.x 1.x
8.x 1.x

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.