|
import rateLimit from 'express-rate-limit' |
|
|
|
|
|
export const rateLimiter = rateLimit({ |
|
windowMs: parseInt(process.env.RATE_LIMIT_WINDOW_MS || '900000'), |
|
max: parseInt(process.env.RATE_LIMIT_MAX_REQUESTS || '100'), |
|
message: { |
|
success: false, |
|
error: 'Too many requests, please try again later', |
|
code: 'RATE_LIMIT_EXCEEDED' |
|
}, |
|
standardHeaders: true, |
|
legacyHeaders: false, |
|
}) |
|
|
|
|
|
export const authRateLimiter = rateLimit({ |
|
windowMs: 15 * 60 * 1000, |
|
max: 5, |
|
message: { |
|
success: false, |
|
error: 'Too many authentication attempts, please try again later', |
|
code: 'AUTH_RATE_LIMIT_EXCEEDED' |
|
}, |
|
standardHeaders: true, |
|
legacyHeaders: false, |
|
}) |
|
|
|
|
|
export const messageRateLimiter = rateLimit({ |
|
windowMs: 60 * 1000, |
|
max: 30, |
|
message: { |
|
success: false, |
|
error: 'Too many messages, please slow down', |
|
code: 'MESSAGE_RATE_LIMIT_EXCEEDED' |
|
}, |
|
standardHeaders: true, |
|
legacyHeaders: false, |
|
}) |
|
|
|
|
|
export const uploadRateLimiter = rateLimit({ |
|
windowMs: 15 * 60 * 1000, |
|
max: 10, |
|
message: { |
|
success: false, |
|
error: 'Too many file uploads, please try again later', |
|
code: 'UPLOAD_RATE_LIMIT_EXCEEDED' |
|
}, |
|
standardHeaders: true, |
|
legacyHeaders: false, |
|
}) |
|
|