如何在一定的时间限制内阻止api重复请求

时间:2016-04-21 11:23:17

标签: node.js api

我正在使用带有节点js的Rest API。

我的要求是,如果我在一定时间间隔内收到重复请求,我需要将其阻止15分钟(因为令牌在15分钟内过期)。

我的条件仅允许来自同一客户端的10秒钟内的15个请求。 一旦你在同一个客户端的第11秒收到第16个请求,那么客户端需要被列入黑名单并从那时起获得Forbidden状态 - 直到他们的Token到期为止。  从令牌创建时起,令牌到期时限为15分钟,这将在节点会话中保持。

如何实现这一目标,请帮助我使用以下任何一种方法

var rateLimit = require('express-rate-limit');
var limiter = rateLimit({/* config */});
app.use('/users', limiter);

我在这里使用默认配置值。如果我发送重复请求,则表示429-Too Many Requests。几秒钟后,它的工作没有错误响应。在这里,我需要阻止来自同一地方的请求15分钟,15分钟后令牌将过期。然后我想继续这个过程,创建一个新令牌。

1 个答案:

答案 0 :(得分:0)

你需要决定两件事:

  1. 时间限制
  2. 您希望在该时间限制内允许的请求数
  3. 如果您希望每10秒将请求限制为最多15个,则可以像这样配置21 Vauxhall Corsa red 19 Vauxhall Corsa blue 18 Vauxhall Corsa White

    express-rate-limit