Add the ability to ban a client completely from accessing your app routes for a period of time.
You can install the package via composer:
composer require zeevx/superban
You can publish the config file with:
php artisan vendor:publish --tag="superban-config"
To use middleware add them inside your app/Http/Kernel.php :
protected $routeMiddleware = [
'superban' => \Zeevx\Superban\Middlewares\SuperbanMiddleware::class,
];
This is the contents of the published config file:
return [
/**
* Key used in cache
* The default is ip_address, you can use either: ip_address or email or user_id
*
*/
'key' => 'ip_address',
/**
* The cache to be used,
* The default cache in config/cache.php is used if empty.
*/
'cache' => 'file',
/**
* Specify guard to be used if you are using email or user_id
* The default guard in config/auth.php is used if empty
*/
'user_guard' => '',
/**
* Enable email notification for when a user is banned
*
*/
'enable_email_notification' => true,
/**
* Email address to be used for email notification
*
*/
'email_address' => '',
];
Apply the middleware to any route in this format:
X - Number of request
Y - Within what period (in minutes)
Z- How long the user should be banned (in minutes).
Route::middleware(['superban:X,Y,Z])->group(function () {
Route::post('/thisroute', function () {
// ...
});
Route::post('anotherroute', function () {
// ...
});
});
composer test
The MIT License (MIT). Please see License File for more information.