Latihan 1 dari materi Rate Limiting untuk Autentikasi di Auth — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Implementasikan sliding-window rate limiter sebagai factory createRateLimiter(windowMs, maxRequests).
Factory mengembalikan function allow(key, now) yang:
t <= now - windowMs) untuk key tersebut.maxRequests → return false (tolak, tapi attempt-nya tetap dicatat, supaya penyerang yang menghantam terus tidak langsung dapat slot begitu window bergeser).now, return true (diterima).Timestamp yang persis di batas window (now - windowMs) dianggap di luar window (sudah boleh dibuang).