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

标签 node.js api

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

相关文章:

php - 如何使 Magento 页面完全空白?

api - CEX订单簿市场更新

api - 在 Postman 中为 Azure 通知中心创建注册

javascript - Express js 不提供静态文件

javascript - 如何使用node.js/electron访问系统文件?

node.js - 通过node.js在另一个目录中运行npm install

java - 如何检查 URL 是否包含 botw.org 上的链接?

node.js - 如何在node.js服务器的客户端下载存储在服务器中的pdf文件

Javascript 覆盖回调的范围

用于代码评论的 Github API