【发布时间】:2019-06-22 10:19:08
【问题描述】:
我正在为我的 Laravel 应用程序的用户构建一个 restful API 来检索他们的数据。
目前的计划是他们可以在应用程序中生成一个 API 令牌,然后对他们的 API 请求进行身份验证。我不知道他们会从哪里提出请求。
我要实施速率限制的主要原因是减少意外/故意 DDOS 的影响,以及用户当前订阅包的一部分(必要)。由于后者,不同的用户可能有不同的费率。
Laravel 已经提供了一个内置的速率限制器,包括访问 User 表中指定的动态用户限制。
我想知道会话是如何处理的。从我所见,Laravel TokenGuard 类不会在请求之间存储用户。因此,在每个请求之间都会检索用户,甚至检索速率限制。如果我们仍然每次都进行数据库查询,这似乎破坏了速率限制器的意义。
处理这个问题的适当方法是什么?
如果我编写自己的身份验证中间件,并将用户存储在会话中,那会起作用吗?从另一台服务器(不是浏览器)发送的请求是否会处理会话?
谢谢。
【问题讨论】:
-
Laravel rateLimit 如果请求数量超过限制数量,则不要关注用户对应用程序的请求,所有用户拒绝访问任何前缀中有 Api 的路由
标签: php laravel restful-authentication rate-limiting throttling