mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-02-05 05:17:51 +08:00
65 lines
1.4 KiB
JavaScript
65 lines
1.4 KiB
JavaScript
const rateLimit = require("express-rate-limit");
|
|
|
|
exports.limit60perhour = rateLimit({
|
|
windowMs: 60 * 60 * 1000, // 60 min
|
|
max: 60,
|
|
message: {
|
|
message: "Too many requests, please try again later",
|
|
},
|
|
keyGenerator: (req) => {
|
|
return `${
|
|
req.headers["cf-connecting-ip"] ||
|
|
req.headers["x-forwarded-for"] ||
|
|
req.ip ||
|
|
"255.255.255.255"
|
|
}`;
|
|
},
|
|
});
|
|
|
|
exports.limit3perday = rateLimit({
|
|
windowMs: 24 * 60 * 60 * 1000, // 1 day
|
|
max: 3,
|
|
message: {
|
|
message: "Too many requests, please try again later",
|
|
},
|
|
keyGenerator: (req) => {
|
|
return `${
|
|
req.headers["cf-connecting-ip"] ||
|
|
req.headers["x-forwarded-for"] ||
|
|
req.ip ||
|
|
"255.255.255.255"
|
|
}`;
|
|
},
|
|
});
|
|
|
|
exports.limit1persec = rateLimit({
|
|
windowMs: 60 * 1000,
|
|
max: 60,
|
|
message: {
|
|
message: "Too many requests, please try again later",
|
|
},
|
|
keyGenerator: (req) => {
|
|
return `${
|
|
req.headers["cf-connecting-ip"] ||
|
|
req.headers["x-forwarded-for"] ||
|
|
req.ip ||
|
|
"255.255.255.255"
|
|
}`;
|
|
},
|
|
});
|
|
|
|
exports.limit500perhour = rateLimit({
|
|
windowMs: 60 * 60 * 1000,
|
|
max: 500,
|
|
message: {
|
|
message: "Too many requests, please try again later",
|
|
},
|
|
keyGenerator: (req) => {
|
|
return `${
|
|
req.headers["cf-connecting-ip"] ||
|
|
req.headers["x-forwarded-for"] ||
|
|
req.ip ||
|
|
"255.255.255.255"
|
|
}`;
|
|
},
|
|
});
|