【问题标题】:Laravel 5.5 : Dynamically change throttle timeLaravel 5.5:动态改变油门时间
【发布时间】:2019-01-22 04:16:24
【问题描述】:

目前我正在处理登录油门,我必须动态更改第二个油门的油门时间。

我将如何做到这一点?

【问题讨论】:

  • 没有。油门延迟是 decayMinutes1 的值,否则。
  • 哎呀,我怎么了。对不起这个错误。但是我如何能够动态地改变它? @MarcinOrlowski

标签: php laravel authentication laravel-5.5 throttling


【解决方案1】:

中间件(如throttle)也可以是defined inside controllers

一种解决方案是有条件地在控制器的构造函数中设置中间件,类似于:

if (true) {
    $this->middleware('throttle:60,1');
} else {
    $this->middleware('throttle:30,1');
}

在 Laravel 5.6 中,您可以通过以下方式指定 User 模型属性,该属性用于确定用户在提供的时间范围内(以分钟为单位)可以发出的请求数:

Route::middleware('throttle:rate_limit,1');

有关详细信息,请参阅 https://laravel-news.com/laravel-5-6-dynamic-rate-limiting 和文档。

祝你好运!

【讨论】:

  • 但是中间件的其余部分将如何工作?它将如何在内部改变时间?
  • 您可以将参数传递给油门中间件以指定每 x 秒的最大速率。此外,我还为 Laravel 5.6 及更高版本添加了第二个解决方案。
  • 好的,你能解释一下吗,中间件会是定制的吗?中间件将如何设置时间等,请让你的答案简短一点,代码会很棒。找不到出路。
  • 已经为您创建了中间件,请按照答案中的说明使用它(即throttle)。如果要指定每 x 秒的最大速率,请传入参数(即throttle:60,1)。关于如何将中间件应用于路由的详细信息可以在 Laravel 官方文档中找到。也许您应该尝试一下,看看会发生什么,这并不难。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-16
  • 2023-02-04
  • 2020-06-01
  • 2020-10-14
  • 2019-12-10
  • 2018-02-25
  • 2022-01-09
相关资源
最近更新 更多