Generator JWT
Buat JSON Web Token bertanda tangan dengan header, payload, dan kunci kustom. Mendukung HS256, RS256, ES256.
Apa itu JWT?
JWT (JSON Web Token, RFC 7519) adalah standar terbuka untuk mengirimkan informasi secara aman sebagai objek JSON kompak. Terdiri dari tiga bagian yang dipisahkan titik: Header.Payload.Signature.
Apa penggunaan umum JWT?
JWT banyak digunakan untuk autentikasi (single sign-on), otorisasi API, dan pertukaran informasi aman. Setelah login, server menerbitkan JWT yang disertakan klien dalam permintaan berikutnya.
Bagaimana memilih antara HS256, RS256, dan ES256?
HS256 menggunakan rahasia bersama dan paling cepat, cocok untuk layanan tunggal. RS256 menggunakan pasangan kunci RSA, lebih baik untuk arsitektur multi-layanan. ES256 menggunakan kunci elliptic curve dengan tanda tangan lebih pendek dan keamanan tinggi.
Apa itu claims JWT?
Claims adalah pernyataan dalam payload. Claims terdaftar meliputi iss (penerbit), sub (subjek), exp (kedaluwarsa), aud (audiens). Claims publik dapat didaftarkan di IANA. Claims privat adalah field kustom yang disepakati antar pihak.
Bagaimana cara memverifikasi JWT?
Decode header untuk mendapatkan algoritma, lalu gunakan kunci yang sesuai (rahasia bersama untuk HMAC, kunci publik untuk RSA/ECDSA) untuk memverifikasi tanda tangan. Periksa juga exp, iss, dan aud.
Apakah aman membuat JWT di browser?
Ya, alat ini menggunakan Web Crypto API. Kunci dan token Anda tidak pernah meninggalkan browser. Tidak ada data yang dikirim ke server.
Apa perbedaan encoding dan signing?
Encoding (Base64) hanya mengonversi data ke format yang dapat dikirim dan dapat dibalik oleh siapa saja. Signing membuat hash kriptografis yang membuktikan token tidak diubah.
Bisakah JWT dienkripsi?
Ya, JWE (JSON Web Encryption) mengenkripsi konten payload. JWT standar (JWS) hanya menjamin integritas, tetapi payload dapat dibaca oleh siapa pun yang memiliki token.
Apa praktik terbaik keamanan JWT?
Selalu atur waktu kedaluwarsa pendek. Gunakan rahasia kuat dan acak untuk HMAC. Simpan kunci privat dengan aman. Jangan masukkan data sensitif di payload. Gunakan HTTPS di produksi.
Bagaimana JWT dibandingkan autentikasi berbasis sesi?
JWT stateless — server tidak menyimpan data sesi, ideal untuk microservice dan skenario lintas domain. Sesi memerlukan penyimpanan server tetapi memungkinkan pencabutan instan.
Apakah JWT cocok untuk logout dan manajemen sesi?
JWT stateless by design, jadi logout memerlukan mekanisme tambahan seperti blocklist atau token berumur pendek dengan refresh token. Gunakan access token berumur pendek (misalnya 15 menit).
Bagaimana pola refresh token bekerja dengan JWT?
Gunakan access token berumur pendek (JWT) untuk panggilan API dan refresh token berumur lebih panjang untuk mendapatkan access token baru. Ketika access token kedaluwarsa, klien mengirim refresh token untuk mendapatkan JWT baru.
Apa itu algoritma "none"?
Algoritma "none" berarti JWT tidak ditandatangani. Hanya gunakan untuk pengujian. Banyak library menonaktifkannya secara default demi keamanan.
Apakah ada batasan ukuran JWT?
JWT tidak memiliki batas ukuran tetap, tetapi karena dikirim di header HTTP, sebaiknya di bawah 4KB. Buat payload seminimal mungkin.