Cra*_*vid 4 php laravel laravel-5
我使用 Laravel 5.8 来提供一个启用了标准节流的 API:
'api' => [
'throttle:60,1',
'bindings',
],
Run Code Online (Sandbox Code Playgroud)
我认识到此速率限制不适用于特定 IP。取而代之的是,它的作用类似于公共路线上的“全局”节流。
有什么我忽略的还是预期的行为?
如果这是预期的 - 如何在我的路由上启用“每个 IP”的速率限制?
cee*_*yoz 14
我认识到此速率限制不适用于特定 IP。取而代之的是,它的作用类似于公共路线上的“全局”节流。
这是不正确的。
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.');
}
Run Code Online (Sandbox Code Playgroud)
仔细看看这两个if陈述。如果用户在场,则油门键基于他们的用户标识符。如果用户不存在,则标识符包括$request->ip()。来自不同 IP 地址的请求进入不同的限制桶。
| 归档时间: |
|
| 查看次数: |
4945 次 |
| 最近记录: |