Files
Orchestrator/privat/CV/andreknie.de/server/middleware/rateLimiter.js
T

22 lines
858 B
JavaScript

import rateLimit from 'express-rate-limit'
/**
* Per-endpoint rate limiters. Limits are per IP per hour.
* Behind a reverse proxy (Caddy), `app.set('trust proxy', 1)` must be set
* so the real client IP is used instead of the proxy IP.
*/
function makeLimiter(max, message) {
return rateLimit({
windowMs: 60 * 60 * 1000, // 1 hour
max,
standardHeaders: true,
legacyHeaders: false,
message: { error: message },
})
}
export const contactLimiter = makeLimiter(3, 'Zu viele Anfragen. Bitte versuche es später erneut.')
export const talkRequestLimiter = makeLimiter(3, 'Zu viele Anfragen. Bitte versuche es später erneut.')
export const newsletterLimiter = makeLimiter(5, 'Zu viele Anfragen. Bitte versuche es später erneut.')
export const resourceLimiter = makeLimiter(10, 'Zu viele Anfragen. Bitte versuche es später erneut.')