diff --git a/app.js b/app.js index 8f5559e..6e32eca 100644 --- a/app.js +++ b/app.js @@ -3,6 +3,7 @@ const bodyParser = require('body-parser'); const path = require('path'); const winston = require('winston'); const rateLimit = require('express-rate-limit'); +const fs = require('fs'); const logger = winston.createLogger({ level: 'info', @@ -17,12 +18,15 @@ const logger = winston.createLogger({ ], }); +const exclusions = JSON.parse(fs.readFileSync('exclusions.json', 'utf8')).excludedIPs; + const registerLimiter = rateLimit({ windowMs: 24 * 60 * 60 * 1000, max: 1, message: 'You have already submitted a registration today. Please try again tomorrow.', standardHeaders: true, legacyHeaders: false, + skip: (req, res) => exclusions.includes(req.ip) }); const app = express(); diff --git a/exclusions.json.example b/exclusions.json.example new file mode 100644 index 0000000..79f744b --- /dev/null +++ b/exclusions.json.example @@ -0,0 +1,6 @@ +{ + "excludedIPs": [ + "127.0.0.1", + "192.168.1.1" + ] +} \ No newline at end of file