const rateLimit = require('express-rate-limit');

/**
 * Limitasi untuk endpoint login (mencegah brute force)
 * Maksimal 5 percobaan gagal per IP dalam 15 menit.
 */
const loginLimiter = rateLimit({
    windowMs: 15 * 60 * 1000, // 15 menit
    max: 5, // Batasi setiap IP maksimal 5 request per windowMs
    message: {
        status: false,
        message: 'Terlalu banyak percobaan login. Silakan coba lagi setelah 15 menit.'
    },
    standardHeaders: true, // Mengembalikan rate limit info di `RateLimit-*` headers
    legacyHeaders: false, // Nonaktifkan header `X-RateLimit-*`
    skipSuccessfulRequests: true // Request sukses tidak mengurangi kuota (hanya limitasi percobaan gagal)
});

module.exports = {
    loginLimiter
};
