Latihan 1 dari materi Magic Link Authentication di Auth — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Implementasikan createMagicLinkStore() yang mengembalikan object dengan method:
issue(email, now) — buat entry magic link. Token: "mlk_" + email + "_" + now. Simpan { email, token, expiresAt: now + 15*60*1000, consumed: false }. Return token-nya.verify(token, now) — cari entry by token. Return { ok: false, reason: "not_found" } jika tidak ada. Jika consumed → { ok: false, reason: "already_used" }. Jika now >= expiresAt → { ok: false, reason: "expired" }. Jika valid → mark consumed = true dan return { ok: true, email }.