let loginRateLimiter = (req, res, next) => next(); try { const rateLimit = require('express-rate-limit'); loginRateLimiter = rateLimit({ windowMs: 15 * 60 * 1000, // 15 minutes max: 30, // Limit each IP to 30 login requests per windowMs (CGNAT-friendly) standardHeaders: true, legacyHeaders: false, validate: { xForwardedForHeader: false }, handler: (req, res) => { if (req.xhr || (req.headers.accept && req.headers.accept.includes('application/json'))) { return res.status(429).json({ ok: false, error: 'Terlalu banyak percobaan login. Silakan coba lagi dalam 15 menit.' }); } return res.status(429).send(`
Sistem keamanan mendeteksi terlalu banyak percobaan login dari IP/perangkat Anda. Untuk mencegah akses tanpa izin, login dibatasi sementara selama 15 menit.
Kembali ke Halaman Login