lumen-rate-limiting
lumen-rate-limiting copied to clipboard
Laravel throttle requests middleware with Lumen support

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
- Require the package on your Lumen application
composer require rogervila/lumen-rate-limiting
- Make sure that
AppServiceProviderandAuthServiceProviderare uncommented onbootstrap/app.php
$app->register(App\Providers\AppServiceProvider::class);
$app->register(App\Providers\AuthServiceProvider::class);
- Configure a rate limiter on the
AppServiceProviderbootmethod
/**
* 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());
});
}
- Register the middleware on
bootstrap/app.php
$app->routeMiddleware([
'throttle' => \LumenRateLimiting\ThrottleRequests::class,
]);
- 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.