我正在使用 Rest API 和 Node js。
我的要求是,如果我在一定的时间间隔内收到重复的请求,我需要阻止它15分钟(因为 token 在15分钟内过期)。
我的条件仅允许同一客户端在 10 秒内发出 15 个请求。一旦您在第 11 秒内收到来自同一客户端的第 16 个请求,则该客户端需要被列入黑名单,并从那时起获得禁止状态 - 直到其 token 过期。 token 到期时间限制为自 token 创建之日起 15 分钟,这将在 Node session 中维护。
如何实现这一目标,请帮助我使用以下方法的任何人
var rateLimit = require('express-rate-limit');
var limiter = rateLimit({/* config */});
app.use('/users', limiter);
我在这里使用默认配置值。如果我发送重复的请求,则会显示 429-请求过多。几秒钟后,它的工作没有错误响应。这里我需要阻止来自同一个地方的请求 15 分钟,15 分钟后 token 将过期。然后我想继续该过程,创建一个新 token 。
您需要决定两件事:
- 时间限制
- 您希望在该时间限制内允许多少个请求
如果您想将请求限制为每 10 秒最多 15 个,您可以像这样配置 express-rate-limit
:
var rateLimit = require('express-rate-limit');
var limiter = rateLimit({
windowMs: 10 * 1000, // 10 seconds
max: 15,
});
app.use('/users', limiter);
我是一名优秀的程序员,十分优秀!