randydev commited on
Commit
dc80896
·
verified ·
1 Parent(s): d19d254

Update middleware/midware.js

Browse files
Files changed (1) hide show
  1. middleware/midware.js +8 -2
middleware/midware.js CHANGED
@@ -1,5 +1,7 @@
1
  import { Database } from '../database/database.js';
2
  import { rateLimit } from 'express-rate-limit';
 
 
3
 
4
  const authenticateApiKey = async (req, res, next) => {
5
  const apiKey = req.headers['x-api-key'];
@@ -21,13 +23,17 @@ const authenticateApiKey = async (req, res, next) => {
21
  };
22
 
23
  const apiLimiter = rateLimit({
24
- windowMs: 15 * 60 * 1000,
 
 
 
 
25
  max: 3,
26
  keyGenerator: (req) => req.headers["x-api-key"],
27
  standardHeaders: true,
28
  legacyHeaders: false,
29
  message: (req, res) => {
30
- const retryAfterMs = res.getHeaders()["retry-after"] * 1000 || 15 * 60 * 1000;
31
  const remainingSeconds = Math.ceil(retryAfterMs / 1000);
32
  const remainingMinutes = Math.floor(remainingSeconds / 60);
33
  return {
 
1
  import { Database } from '../database/database.js';
2
  import { rateLimit } from 'express-rate-limit';
3
+ import { MongoStore } from "rate-limit-mongo";
4
+ import { dbUri } from '/..config.js';
5
 
6
  const authenticateApiKey = async (req, res, next) => {
7
  const apiKey = req.headers['x-api-key'];
 
23
  };
24
 
25
  const apiLimiter = rateLimit({
26
+ store: new MongoStore({
27
+ uri: dbUri,
28
+ collectionName: "rateLimits",
29
+ }),
30
+ windowMs: 2 * 60 * 1000,
31
  max: 3,
32
  keyGenerator: (req) => req.headers["x-api-key"],
33
  standardHeaders: true,
34
  legacyHeaders: false,
35
  message: (req, res) => {
36
+ const retryAfterMs = res.getHeaders()["retry-after"] * 1000 || 2 * 60 * 1000;
37
  const remainingSeconds = Math.ceil(retryAfterMs / 1000);
38
  const remainingMinutes = Math.floor(remainingSeconds / 60);
39
  return {