gpt4 book ai didi

php - Laravel 5.8 - 每个 IP 的速率限制

转载 作者:行者123 更新时间:2023-12-02 07:17:39 25 4
gpt4 key购买 nike

我使用 Laravel 5.8 提供启用了标准限制的 api:

        'api' => [
'throttle:60,1',
'bindings',
],

我认识到此速率限制不适用于特定 IP。相反,它就像公共(public)路线上的“全局”节流。

有什么我忽略的或者是预期的行为吗?

如果是预期的 - 如何在我的路由上启用“每个 IP”的速率限制?

最佳答案

I recognized that this rate limit is not applied to a specific IP. Instead it acts like a "global"-throttling on public routes.



这是不正确的。

https://github.com/laravel/framework/blob/5.8/src/Illuminate/Routing/Middleware/ThrottleRequests.php#L94
protected function resolveRequestSignature($request)
{
if ($user = $request->user()) {
return sha1($user->getAuthIdentifier());
}

if ($route = $request->route()) {
return sha1($route->getDomain().'|'.$request->ip());
}

throw new RuntimeException('Unable to generate the request signature. Route unavailable.');
}

仔细看两个 if陈述。如果用户在场,则 throttle 键基于他们的用户标识符。如果用户是 不是 目前,标识符包括 $request->ip() .来自不同 IP 地址的请求进入不同的限制桶。

关于php - Laravel 5.8 - 每个 IP 的速率限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56994381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com