Latihan 1: JSON Web Token (JWT) — Auth

Latihan 1 dari materi JSON Web Token (JWT) di Auth — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi dua function di kode awal. Token uji di kode awal sudah ada, dan payload-nya {"userId":42,"role":"admin","iat":1700000000,"exp":1700086400}.

  1. decodeJWT(token): kembalikan object payload dari token, tanpa memeriksa signature (decode saja, bukan verify). Langkahnya: split('.'), ambil bagian kedua, ganti - jadi + dan _ jadi /, lalu atob() dan JSON.parse().
  2. isExpired(payload): kembalikan true kalau token sudah kedaluwarsa menurut payload.exp. exp dalam detik, Date.now() dalam milidetik, jadi kalikan exp dengan 1000 dulu. Tepat di detik exp, token dianggap sudah kedaluwarsa.

Empat baris console.log di kode awal sudah ada, biarkan begitu. Output-nya harus persis empat baris ini, berurutan:

  1. 42
  2. admin
  3. 1700000000
  4. true (exp-nya November 2023, sudah lewat)

Dicek juga: isExpired({ exp: 1 }) hasilnya true, dan payload yang exp-nya satu jam dari sekarang hasilnya false.

Hint