gpt4 book ai didi

node.js - 如何在一定时间内阻止api重复请求

转载 作者:太空宇宙 更新时间:2023-11-04 02:13:43 24 4
gpt4 key购买 nike

我正在使用 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 。

最佳答案

您需要决定两件事:

  1. 时间限制
  2. 您希望在该时间限制内允许多少个请求

如果您想将请求限制为每 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);

关于node.js - 如何在一定时间内阻止api重复请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36768094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com