implement config option to disable ratelimit

This commit is contained in:
derrickmehaffy 2022-12-16 10:42:28 -07:00
parent 68a4ec7729
commit b75e8a1d10

View File

@ -8,18 +8,30 @@ const { RateLimitError } = utils.errors;
module.exports = module.exports =
(config, { strapi }) => (config, { strapi }) =>
async (ctx, next) => { async (ctx, next) => {
const ratelimit = require('koa2-ratelimit').RateLimit; let ratelimitConfig = strapi.config.get('admin.ratelimit');
const userEmail = toLower(ctx.request.body.email) || 'unknownEmail'; if (!ratelimitConfig || !ratelimitConfig.enabled) {
ratelimitConfig = {
enabled: true,
};
}
return ratelimit.middleware({ if (ratelimitConfig.enabled === true) {
interval: { min: 5 }, const ratelimit = require('koa2-ratelimit').RateLimit;
max: 5,
prefixKey: `${userEmail}:${ctx.request.path}:${ctx.request.ip}`, const userEmail = toLower(ctx.request.body.email) || 'unknownEmail';
handler() {
throw new RateLimitError(); return ratelimit.middleware({
}, interval: { min: 5 },
...strapi.config.get('admin.ratelimit'), max: 5,
...config, prefixKey: `${userEmail}:${ctx.request.path}:${ctx.request.ip}`,
})(ctx, next); handler() {
throw new RateLimitError();
},
...ratelimitConfig,
...config,
})(ctx, next);
}
return next();
}; };