mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 07:07:35 +01:00
27 lines
804 B
JavaScript
27 lines
804 B
JavaScript
var nconf = require('nconf');
|
|
var limiter = require('connect-ratelimit');
|
|
|
|
var IS_PROD = nconf.get('NODE_ENV') === 'production';
|
|
|
|
// TODO since Habitica runs on many different servers this module is pretty useless
|
|
// as it will only block requests that go to the same server but anyway we should probably have a rate limiter in place
|
|
|
|
module.exports = function(app) {
|
|
// disable the rate limiter middleware
|
|
if (/*!IS_PROD || */true) return;
|
|
app.use(limiter({
|
|
end:false,
|
|
categories:{
|
|
normal: {
|
|
// 2 req/s, but split as minutes
|
|
totalRequests: 80,
|
|
every: 60000
|
|
}
|
|
}
|
|
})).use(function(req,res,next){
|
|
//logging.info(res.ratelimit);
|
|
if (res.ratelimit.exceeded) return res.status(429).json({err:'Rate limit exceeded'});
|
|
next();
|
|
});
|
|
};
|