larowka / prevent-duplicate-requests
Laravel应用程序防止重复请求的中间件。
v1.1.0
2024-06-21 14:31 UTC
Requires
- php: ^8.1
- illuminate/http: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
Requires (Dev)
- laravel/pint: ^1.16
- orchestra/testbench: ^8.0|^9.0
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2024-09-21 15:05:49 UTC
README
Laravel的中间件,用于基于用户操作防止重复请求。
此中间件旨在管理和防止在指定时间段内的重复请求,确保只处理唯一的请求。
安装
您可以通过Composer安装此包
composer require larowka/prevent-duplicate-requests
使用
Laravel 11
全局中间件
要在Laravel 11中全局应用中间件以处理每个HTTP请求,您可以在bootstrap/app.php文件中使用withMiddleware方法
use \Larowka\PreventDuplicateRequests\Middleware\PreventDuplicateRequests; ->withMiddleware(function ($middleware) { // ... $middleware->append(PreventDuplicateRequests::class); });
将中间件分配给路由
如果您想将中间件分配给特定路由,请在定义路由时使用middleware方法
Copy code use \Larowka\PreventDuplicateRequests\Middleware\PreventDuplicateRequests; Route::get('/example', function () { // Route logic... })->middleware(PreventDuplicateRequests::class);
中间件别名
您可以在bootstrap/app.php文件中为中间件定义别名,以使用中间件类的短名称
use \Larowka\PreventDuplicateRequests\Middleware\PreventDuplicateRequests; ->withMiddleware(function ($middleware) { $middleware->alias([ 'preventDuplicate' => PreventDuplicateRequests::class, ]); });
定义后,您可以在分配中间件到路由时使用别名
Route::get('/example', function () { // Route logic... })->middleware('preventDuplicate');
Laravel 10
将中间件添加到Laravel应用程序的HTTP内核中
// app/Http/Kernel.php protected $routeMiddleware = [ // ... 'preventDuplicate' => \Larowka\PreventDuplicateRequests\Middleware\PreventDuplicateRequests::class, ];
将中间件应用于您的路由
Route::middleware('preventDuplicate')->get('/example', function () { return 'Unique request handled.'; });
或全局应用
// app/Http/Kernel.php protected $middleware = [ // ... \Larowka\PreventDuplicateRequests\Middleware\PreventDuplicateRequests::class, ];
功能
- 防止重复请求:在指定时间段内阻止重复请求。
- 灵活配置:自定义请求缓存的时间长度。
- 支持认证用户:区分认证用户和非认证用户。
- 幂等性支持:确保对用户特定操作执行幂等操作。
测试
使用PHPUnit运行测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志
贡献
有关详细信息,请参阅贡献指南
安全
如果您发现任何安全问题,请通过电子邮件larowka@icloud.com联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证