限制nestjs的API速率



我正在寻找一种很好的方法来限制我的nestjs api速率。我看过不同的软件包,但它们都是根据用户ip进行限制的。

你知道有什么好的软件包使用用户访问令牌吗?

如果没有,你能告诉我我的理解是否正确吗?

IF (DB has record where [dbAccessToken === reqAccessToken])    
IF (currentDate <= record.timestamp + limitSeconds) 
=> throw "Rate Limit Error"
...
=> Resolve Request 
=> Add record in DB

我认为我的解决方案可以工作,但我担心它会影响api的速度。

我认为利率限制有两种可能性:

  • (首选(:在Web服务器级别实现速率限制(即通过nginx/apache等((nginx速率限制链接https://www.nginx.com/blog/rate-limiting-nginx/)
  • 在您的应用程序中实现它-有一个很好的中间件可用于express,也可以在NestJS中使用(https://www.npmjs.com/package/express-rate-limit)

也可以使用NestJS中间件实现您提出的逻辑(此处解释:https://docs.nestjs.com/middleware)-但我不建议你这样做,因为这相当耗费资源!

最新更新