经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
laravel8更新之速率限制改进
来源:cnblogs  作者:神兵小将2016  时间:2020/11/9 16:11:40  对本文有异议

原文地址:https://www.wjcms.net/archives/laravel8更新之速率限制改进

Laravel的请求速率限制器功能已增强,具有更大的灵活性和功能,同时仍保持与先前版本的throttle中间件API的向后兼容性。

速率限制器是使用RateLimiter立面的for方法定义的。该for方法接受一个速率限制器名称和一个Closure,该Closure返回应应用于分配了该速率限制器的路由的限制配置:

  1. use Illuminate\Cache\RateLimiting\Limit;
  2. use Illuminate\Support\Facades\RateLimiter;
  3. RateLimiter::for('global', function (Request $request) {
  4. return Limit::perMinute(1000);
  5. });

由于速率限制器回调接收传入的HTTP请求实例,因此您可以根据传入的请求或经过身份验证的用户动态构建适当的速率限制:

  1. RateLimiter::for('uploads', function (Request $request) {
  2. return $request->user()->vipCustomer()
  3. ? Limit::none()
  4. : Limit::perMinute(100);
  5. });

有时您可能希望将速率限制按任意值进行细分。例如,您可能希望允许用户每个IP地址每分钟100次访问给定路由。为此,您可以by在建立速率限制时使用以下方法:

  1. RateLimiter::for('uploads', function (Request $request) {
  2. return $request->user()->vipCustomer()
  3. ? Limit::none()
  4. : Limit::perMinute(100)->by($request->ip());
  5. });

可以使用throttle 中间件将速率限制器附加到路由或路由组。油门中间件接受您希望分配给路线的速率限制器的名称:

  1. Route::middleware(['throttle:uploads'])->group(function () {
  2. Route::post('/audio', function () {
  3. //
  4. });
  5. Route::post('/video', function () {
  6. //
  7. });
  8. });

原文链接:http://www.cnblogs.com/wjcms/p/13943344.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号