Latihan 1: Rate Limiting untuk Autentikasi — Auth

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:

  1. Menghapus timestamp lama (t <= now - windowMs) untuk key tersebut.
  2. Jika jumlah request dalam window ≥ maxRequests → return false (tolak, jangan catat attempt ini).
  3. Else → catat now, return true (diterima).

Timestamp yang persis di batas window (now - windowMs) dianggap di luar window (sudah boleh dibuang).

Hint