Encoder JWT lokal yang aman
Encoder jwt ini memungkinkan developer untuk dengan cepat menyusun, mengubah, dan menandatangani JSON Web Token langsung di browser. Baik saat Anda sedang membangun alur autentikasi, menguji endpoint API, atau melakukan debug microservice, Anda dapat membuat token yang valid secara instan tanpa perlu menulis skrip khusus atau mengekspos kredensial Anda ke server pihak ketiga.
Karena alat ini mengandalkan Web Crypto API bawaan browser Anda, semua pemrosesan data dan penandatanganan kriptografi dilakukan sepenuhnya di perangkat Anda. Payload JSON dan secret key Anda tidak pernah diunggah, disimpan, atau dicatat. Pendekatan local-first ini membuatnya aman untuk menandatangani JWT secara online, bahkan saat menggunakan kredensial development atau staging yang sensitif.
Cara membuat token JWT
Untuk membuat token JWT, Anda memerlukan tiga komponen: header (yang menentukan algoritma), payload (yang berisi data Anda), dan kunci rahasia (yang mengamankan token).
Mulailah dengan memilih algoritma Anda. Alat ini berfungsi sebagai generator JWT HS256 yang andal, dan juga mendukung HS384 serta HS512. Ini adalah algoritma HMAC simetris, artinya kunci rahasia yang sama persis digunakan untuk menandatangani token dan memverifikasinya nanti. Semakin tinggi angkanya (misal, 512), semakin besar ukuran hash yang dihasilkan, sehingga memberikan keamanan kriptografi yang lebih kuat meskipun string token menjadi sedikit lebih panjang.
Selanjutnya, tentukan payload Anda pada kotak teks yang tersedia. Payload harus berupa JSON yang valid. Saat Anda mengedit JSON atau mengubah kunci rahasia, alat ini akan menghitung ulang signature secara real-time, serta memberikan pemberitahuan langsung jika terdapat kesalahan sintaks pada struktur JSON Anda. Setelah payload dan kunci rahasia diatur, token akhir siap disalin dan digunakan pada header Authorization atau cookie aplikasi Anda.
Kasus penggunaan umum untuk membuat token
Memiliki jwt generator yang andal sangat penting untuk pengembangan web modern. Developer sering menggunakan alat ini untuk berbagai skenario pengujian dan debugging:
Menguji Endpoint API: Saat menggunakan klien API seperti Postman atau Insomnia, Anda sering membutuhkan bearer token yang valid untuk mengakses rute yang dilindungi. Daripada menjalankan seluruh aplikasi frontend untuk login dan mengambil token, Anda bisa membuatnya secara manual di sini dengan ID pengguna dan role yang tepat sesuai kebutuhan.
Debugging Logika Autentikasi: Jika backend Anda menolak token, membuat token secara manual akan membantu mengisolasi masalah. Anda bisa memverifikasi apakah masalahnya berasal dari secret key yang salah, format payload yang keliru, atau algoritma signing yang tidak cocok.
Membuat Edge Case: Menguji bagaimana backend Anda menangani token yang kedaluwarsa, klaim yang hilang, atau role yang tidak sah sangat penting untuk keamanan. Anda bisa dengan mudah memanipulasi payload JSON di sini untuk membuat edge case tersebut dan memastikan server merespons dengan kode status HTTP yang benar.
Mengelola stempel waktu dan klaim
JSON Web Token menggunakan kolom khusus, yang dikenal sebagai klaim, untuk menyampaikan informasi tentang siklus hidup token dan pengguna yang diwakilinya. Klaim berbasis waktu yang paling umum adalah iat (Issued At) dan exp (Expiration Time). Kedua klaim ini memerlukan stempel waktu Unix, yaitu jumlah detik yang telah berlalu sejak 1 Januari 1970.
Menghitung stempel waktu ini secara manual bisa merepotkan saat pengujian. Untuk mempercepat alur kerja Anda, alat ini menyediakan tombol aksi cepat di atas editor payload.
- Mengklik iat = now akan langsung memasukkan atau memperbarui kolom
iatdengan waktu Unix saat ini. - Mengklik exp = +1h atau exp = +24h akan menghitung stempel waktu di masa depan dan memperbarui kolom
exp.
Hal ini memastikan token yang Anda buat langsung valid dan tidak akan ditolak lebih awal oleh logika validasi waktu server Anda.
Menangani secret Base64
Kendala umum saat mencoba menandatangani JWT online adalah menangani encoding secret key. Banyak sistem backend dan tutorial menyarankan pembuatan array byte acak yang kuat untuk secret HMAC Anda dan menyimpannya sebagai string Base64 di environment variable.
Jika server Anda mendekode string Base64 ini menjadi raw byte sebelum menandatangani atau memverifikasi token, menempelkan string Base64 langsung ke generator standar akan menghasilkan signature yang tidak valid. Generator akan menganggap karakter Base64 sebagai teks biasa, sehingga menyebabkan ketidakcocokan.
Untuk mengatasinya, cukup centang kotak Secret is Base64 encoded. Tool ini akan mendekode string secret Anda ke raw byte aslinya sebelum menerapkan hash HMAC, memastikan signature yang dihasilkan benar-benar cocok dengan environment backend Anda.
Memahami struktur JWT
Saat Anda membuat token, output ditampilkan dalam format kode warna untuk membantu Anda memahami strukturnya. JWT standar terdiri dari tiga bagian yang dipisahkan oleh tanda titik (.):
- Header (Merah): Berisi metadata tentang token, terutama algoritma penandatanganan (misalnya,
{"alg":"HS256","typ":"JWT"}). Bagian ini dibuat secara otomatis berdasarkan pilihan algoritma Anda dan dienkode dengan Base64-URL. - Payload (Biru): Data JSON Anda yang sebenarnya, juga dienkode dengan Base64-URL. Bagian ini mudah dibaca oleh siapa saja yang menyadap token, itulah sebabnya Anda tidak boleh memasukkan kata sandi atau data yang sangat sensitif ke dalam payload.
- Signature (Hijau): Hash kriptografi dari header dan payload yang telah dienkode, ditandatangani menggunakan kunci rahasia Anda. Hal ini menjamin bahwa token tidak dimanipulasi selama pengiriman.
Jika Anda memiliki token dan ingin melihat isinya tanpa kunci rahasia, Anda dapat menempelkannya ke JWT Decoder kami untuk memeriksa header dan payload secara aman.