原文地址:https://www.wjcms.net/archive...节流中间件API以实现向后兼容性。速率限制器是使用RateLimiterfacade的for方法定义的。for方法接受一个速率限制器名称和一个返回限制配置的闭包,该配置应应用于分配了该速率限制器的路由:useIlluminate\Cache\RateLimiting\Limit;useIlluminate\Support\Facades\RateLimiter;RateLimiter::for('global',function(Request$request){returnLimit::perMinute(1000);});由于速率限制器回调接收传入的HTTP请求实例,您可以通过身份验证的用户动态构造适当的速率限制:RateLimiter::for('uploads',function(Request$request){return$request->user()->vipCustomer()?限制::无():限制::perMinute(100);});有时您可能希望将速率限制细分为任意值。例如,您可能希望允许用户每个IP地址每分钟访问给定路由100次。您可以在建立速率限制时使用以下方法来执行此操作:RateLimiter::for('uploads',function(Request$request){return$request->user()->vipCustomer()?Limit::none():限制::每分钟(100)->by($request->ip());});可以使用throttle中间件将速率限制器附加到一条路由或一组路由。油门中间件接受您希望分配给路由的速率限制器的名称:Route::middleware(['throttle:uploads'])->group(function(){Route::post('/audio',function(){//});Route::post('/video',function(){//});});
