Latihan 1 dari materi Account Recovery & Lockout di Auth — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Implementasikan createLockoutTracker() — sliding-window lockout untuk mencegah credential stuffing.
Object yang dikembalikan punya method:
recordFailure(userId, now) — catat attempt gagal pada waktu now (ms).isLockedOut(userId, now) — return true jika jumlah attempt gagal dalam 15 menit terakhir (15 * 60 * 1000 ms) ≥ 5, else false. Buang record yang lebih tua dari window.clearFailures(userId) — hapus semua record untuk user (dipanggil saat login berhasil).