Parcourir la source

Modified to set a threshold for each request

Shun Miyazawa il y a 1 an
Parent
commit
bca807e89e
1 fichiers modifiés avec 2 ajouts et 5 suppressions
  1. 2 5
      apps/app/src/features/rate-limiter/middleware/factory.ts

+ 2 - 5
apps/app/src/features/rate-limiter/middleware/factory.ts

@@ -19,11 +19,8 @@ const logger = loggerFactory('growi:middleware:api-rate-limit');
 // API_RATE_LIMIT_010_FOO_METHODS=GET,POST
 // API_RATE_LIMIT_010_FOO_METHODS=GET,POST
 // API_RATE_LIMIT_010_FOO_MAX_REQUESTS=10
 // API_RATE_LIMIT_010_FOO_MAX_REQUESTS=10
 
 
-export const POINTS_THRESHOLD = 100;
-
 const opts: IRateLimiterMongoOptions = {
 const opts: IRateLimiterMongoOptions = {
   storeClient: connection,
   storeClient: connection,
-  points: POINTS_THRESHOLD, // set default value
   duration: DEFAULT_DURATION_SEC, // set default value
   duration: DEFAULT_DURATION_SEC, // set default value
 };
 };
 const rateLimiter = new RateLimiterMongo(opts);
 const rateLimiter = new RateLimiterMongo(opts);
@@ -56,8 +53,8 @@ export const _consumePoints = async(
     maxRequests *= maxRequestsMultiplier;
     maxRequests *= maxRequestsMultiplier;
   }
   }
 
 
-  const consumePoints = POINTS_THRESHOLD / maxRequests;
-  const rateLimiterRes = await rateLimiter.consume(key, consumePoints);
+  rateLimiter.points = maxRequests;
+  const rateLimiterRes = await rateLimiter.consume(key, 1);
   return rateLimiterRes;
   return rateLimiterRes;
 };
 };