如何在OAuth保护的REST api上实现速率限制?

时间:2015-03-11 10:17:03

标签: spring-security spring-security-oauth2 rate-limiting

对于OAuth2受保护的api,是否有实施速率限制的最佳做法?

我意识到REDIS经常被用于此,但由于我使用数据库来持久化令牌,所以我也考虑将其用于速率限制。它将存储每个令牌的最大查询数,并在每次使用令牌时减少,然后每天或每小时重置计数器。

这种方法有什么重大问题吗?

1 个答案:

答案 0 :(得分:3)

最常用的算法是Token Bucket

您可以将逻辑放在应用程序中,并使用redis或其他数据库作为后端。 Redis特别有趣,因为你可以使用像TTL这样的东西。

我一直致力于将所有逻辑转移到守护进程的另一种方法。我还没有其他技术的客户端而不是node.js,但你可以查看这个想法here