# Dekoder dan verifikator JWT

Dekode JSON Web Token, periksa kedaluwarsa dan claim-nya, lalu verifikasi tanda tangannya dengan secret atau kunci publik.

https://codeknife.dev/id/dekoder-jwt/

## Fungsinya

Dekode JSON Web Token untuk membaca header dan payload-nya, lihat apakah sudah kedaluwarsa, dan verifikasi tanda tangannya dengan secret atau kunci publik. Token didekode di browser Anda, halaman ini tidak menampilkan iklan, dan token serta kunci tidak pernah dibagikan atau disimpan.

## Cara memakainya

1. Tempel token. Awalan `Bearer ` dan jeda baris diabaikan.
2. Baca payload sebagai JSON yang diformat atau ringkas. Di bawahnya Anda melihat algoritma, status, serta waktu `exp`, `nbf`, dan `iat` di samping selisihnya dari sekarang.
3. Untuk memverifikasi tanda tangan, masukkan kunci: secret untuk HS256, HS384, dan HS512, atau kunci publik (PEM atau JWK) untuk RS, PS, ES, dan EdDSA.
4. Alihkan header dan payload antara JSON dan Claim: Claim mencantumkan tiap claim beserta artinya dan menampilkan claim waktu sebagai tanggal.
5. Buka tab Enkode untuk menulis header dan payload lalu menandatanganinya dengan secret atau kunci privat (PEM PKCS#8 atau JWK). Tidak ada yang ada di tab itu yang disimpan, dibagikan, atau ditambahkan ke riwayat.

## Contoh

```
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
```

Payload dari token itu:

```json
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}
```

Tanda tangannya terverifikasi dengan secret `your-256-bit-secret`.

## Perlu diketahui

- Mendekode bukan memverifikasi: payload hanya dienkode, tidak dienkripsi, dan siapa pun bisa membacanya.
- Server Anda harus memverifikasi tanda tangan sebelum memercayai klaim apa pun.
- Token dengan algoritma `none` tidak bertanda tangan, jadi siapa pun bisa saja membuatnya.
- Perlakukan token yang masih aktif seperti kata sandi. Lebih baik tempel token yang sudah kedaluwarsa atau token uji di sini.
- JWKS yang ditempelkan dicari berdasarkan `kid` token, dan satu JWK dipakai apa adanya. Halaman ini tidak pernah mengambil set kunci dari penerbit token.
- Secret HMAC yang lebih pendek dari hash-nya (32, 48, atau 64 byte) bisa ditebak, jadi halaman ini memperingatkan Anda. Secret bisa dibaca sebagai teks UTF-8 atau Base64URL.

## Apa itu JWT?

JSON Web Token adalah tiga bagian Base64URL yang digabung dengan titik: header yang menyebut algoritma tanda tangan, payload berisi claim seperti untuk siapa token dan kapan kedaluwarsa, serta tanda tangan. Siapa pun dapat membaca dua bagian pertama; hanya tanda tangan yang membuktikan token berasal dari pemegang kunci.

## Pertanyaan yang sering diajukan

### Apakah mendekode token sama dengan memverifikasinya?

Tidak. Mendekode hanya membaca isi, yang tidak dienkripsi. Memverifikasi memeriksa tanda tangan dengan kunci, dan server Anda harus melakukannya sebelum memercayai claim apa pun.

### Apa arti exp, nbf, dan iat?

exp adalah kapan token kedaluwarsa, nbf waktu sebelum token tidak berlaku, dan iat kapan diterbitkan, semuanya dalam detik sejak 1970. Alat ini membandingkannya dengan jam perangkat Anda.

### Amankah menempel token asli di sini?

Token didekode di browser Anda dan tidak pernah dikirim ke server kami, dan halaman ini tidak menampilkan iklan. Tetap perlakukan token aktif seperti kata sandi: lebih baik pakai token kedaluwarsa atau token uji.