对于OAuth2受保护的api,是否有实施速率限制的最佳做法?
我意识到REDIS经常被用于此,但由于我使用数据库来持久化令牌,所以我也考虑将其用于速率限制。它将存储每个令牌的最大查询数,并在每次使用令牌时减少,然后每天或每小时重置计数器。
这种方法有什么重大问题吗?
答案 0 :(得分:3)
最常用的算法是Token Bucket。
您可以将逻辑放在应用程序中,并使用redis或其他数据库作为后端。 Redis特别有趣,因为你可以使用像TTL这样的东西。
我一直致力于将所有逻辑转移到守护进程的另一种方法。我还没有其他技术的客户端而不是node.js,但你可以查看这个想法here。