Apidog

Platform Pengembangan API Kolaboratif All-in-one

Desain API

Dokumentasi API

Debug API

Mocking API

Pengujian Otomatis API

Apa itu JWT dan Bagaimana Cara Kerjanya?

JWT (JSON Web Token) ringkas & aman URL, mewakili klaim antar pihak. Klaim ini sering dipakai untuk integritas & otentikasi info.

Ardianto Nugroho

Ardianto Nugroho

Updated on April 15, 2025

JSON Web Token (JWT) adalah cara yang ringkas dan aman untuk merepresentasikan klaim yang akan ditransfer antara dua pihak. Klaim ini sering digunakan untuk memastikan integritas dan keaslian informasi.

Artikel ini membahas cara kerja JWT. Kita akan melihat struktur JWT, yang terdiri dari tiga bagian yang dienkode dan ditandatangani secara digital. Kita kemudian akan membahas kasus penggunaan umum untuk JWT dan meninjau beberapa manfaat menggunakannya,

Struktur JWT (Dengan Contoh)

JSON Web Token (JWT) terdiri dari tiga bagian yang dipisahkan oleh titik: Header, Payload, dan Signature. Struktur keseluruhannya adalah:

xxxxxxxxxx.yyyyyyyyyy.zzzzzzzzzz
  • Header biasanya terdiri dari dua bagian: jenis token, yaitu JWT, dan algoritma penandatanganan yang digunakan, seperti HMAC SHA256 atau RSA.
  • Contoh Header (base64 encoded): eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

Payload:

  • Payload berisi klaim. Klaim adalah pernyataan tentang suatu entitas (biasanya, pengguna) dan data tambahan.
  • Ada tiga jenis klaim: registered, public, dan private claims.
  • Contoh Payload (base64 encoded): eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ

Signature:

  • Untuk membuat bagian signature, Anda perlu mengambil header yang dienkode, payload yang dienkode, secret, algoritma yang ditentukan di header, dan menandatanganinya.
  • Signature digunakan untuk memverifikasi bahwa pengirim JWT adalah orang yang dikatakannya dan untuk memastikan bahwa pesan tidak diubah di sepanjang jalan.
  • Contoh Signature: HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)

Menggabungkan semuanya:

Header: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Payload: eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
Signature: HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)

JWT yang dienkode:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwia

Manfaat Menggunakan JWT:

JWT berisi objek JSON yang dienkode dan ditandatangani, memastikan integritas dan keaslian tanpa bergantung pada sesi stateful di server.

Beberapa manfaat utama yang membuat JWT berguna adalah:

  • Ukuran ringkas dari pengenkodean JSON yang aman untuk URL untuk efisiensi ruang
  • Mandiri dengan semua informasi pengguna yang diperlukan untuk menghindari kueri database yang berlebihan
  • Tanda tangan digital untuk keamanan anti-perubahan dan verifikasi keaslian
  • Sifat stateless untuk meningkatkan skalabilitas dengan menghapus sesi sisi server
  • Interoperabilitas universal dengan parser JSON yang tersedia di sebagian besar bahasa
  • Dapat diperluas melalui bidang data khusus tanpa merusak kerangka kerja yang ada

JWT vs OAuth: Perbedaan antara JWT dan OAuth

JWT (JSON Web Token) dan OAuth terkait tetapi melayani tujuan yang berbeda dalam konteks otentikasi dan otorisasi dalam pengembangan web. Berikut adalah perbandingan singkat JWT dan OAuth:

JWT (JSON Web Token):

  1. Tujuan: JWT adalah cara yang ringkas dan mandiri untuk mengirimkan informasi antar pihak secara aman. Ini umumnya digunakan untuk otentikasi dan pertukaran informasi.
  2. Konten: JWT berisi klaim tentang suatu entitas (biasanya, pengguna) dan sering digunakan untuk otentikasi pengguna. Klaim dapat mencakup ID pengguna, peran, izin, dan informasi relevan lainnya. JWT sering digunakan untuk membuat sistem otentikasi stateless.
  3. Penggunaan: JWT biasanya dikirim sebagai bagian dari header permintaan dalam permintaan HTTP. Mereka digunakan untuk mewakili identitas dan hak istimewa pengguna.

OAuth (Open Authorization):

  1. Tujuan: OAuth adalah kerangka kerja untuk otorisasi, yang memungkinkan aplikasi pihak ketiga untuk mengakses sumber daya pengguna di server lain tanpa mengekspos kredensial pengguna. OAuth tidak dirancang untuk otentikasi tetapi untuk delegasi otoritas.
  2. Peran: OAuth mendefinisikan peran seperti Pemilik Sumber Daya, Klien, Server Otorisasi, dan Server Sumber Daya. Ini memungkinkan skenario di mana pengguna dapat memberikan akses ke sumber daya mereka (misalnya, foto, kontak) ke aplikasi lain tanpa membagikan kredensial mereka.
  3. Jenis Pemberian: OAuth memperkenalkan jenis pemberian (kode otorisasi, implisit, kredensial klien, kata sandi, dll.) untuk menentukan bagaimana proses otorisasi harus dilakukan.
  4. Token: OAuth melibatkan penggunaan token akses dan token refresh. Token akses digunakan untuk mengakses sumber daya yang dilindungi, dan token refresh dapat digunakan untuk mendapatkan token akses baru.

Perbedaan Utama:

  • Tujuan: JWT terutama digunakan untuk otentikasi dan pertukaran informasi, sedangkan OAuth adalah kerangka kerja untuk otorisasi.
  • Konten: JWT berisi klaim tentang pengguna, sementara OAuth berfokus pada pendefinisian peran dan izin serta pengelolaan akses ke sumber daya.
  • Peran: JWT sering digunakan untuk mewakili identitas pengguna, sementara OAuth melibatkan peran seperti Pemilik Sumber Daya, Klien, Server Otorisasi, dan Server Sumber Daya.
  • Token: JWT adalah jenis token yang digunakan untuk otentikasi, sedangkan OAuth memperkenalkan token akses dan token refresh untuk mengelola otorisasi.

Bagaimana Cara Kerja JWT?

JSON Web Token (JWT) memainkan peran kunci dalam otentikasi dengan menyediakan cara yang aman dan efisien untuk memverifikasi identitas pengguna. Proses ini biasanya melibatkan langkah-langkah berikut:

  1. Otentikasi Pengguna: Pengguna masuk menggunakan nama pengguna dan kata sandi mereka atau melalui penyedia eksternal seperti Google atau Facebook. Server otentikasi memvalidasi kredensial dan mengeluarkan JSON Web Token (JWT) yang mengesahkan identitas pengguna.
  2. Pembuatan JWT: Penyedia identitas (IdP) menghasilkan JWT, menandatanganinya dengan secret salt atau kunci pribadi. JWT ini merangkum informasi pengguna penting, seperti ID pengguna, peran, dan waktu kedaluwarsa.
  3. Penggunaan JWT: Klien pengguna menyimpan JWT yang diperoleh selama otentikasi dengan aman. Saat mengakses sumber daya yang dilindungi, klien menyertakan JWT di header Otorisasi HTTP.
  4. Verifikasi Token: Server sumber daya mendekode dan memverifikasi keaslian JWT menggunakan secret salt atau kunci publik yang disediakan. Proses ini memastikan integritas dan asal token.

JWT di Apidog

Apidog adalah alat pengembangan dan pengujian API yang mudah digunakan yang unggul dalam mengelola JSON Web Token (JWT). Dengan antarmuka yang intuitif, Apidog menyederhanakan proses penanganan JWT, menyediakan dukungan otomatis untuk pembuatan token, manajemen dinamis, dan penyertaan tanpa batas dalam permintaan API.

JWT

Alat ini menyederhanakan aspek terkait JWT dari pengembangan API, memungkinkan pengembang untuk fokus pada pengujian dan integrasi yang efisien dalam alur kerja mereka.

button
Apa itu Ollama? Cara Menginstal Ollama?Sudut Pandang

Apa itu Ollama? Cara Menginstal Ollama?

đŸ’¡Ingin alat Pengujian API yang hebat yang menghasilkan Dokumentasi API yang indah? Ingin platform terintegrasi, All-in-One untuk Tim Pengembang Anda bekerja sama dengan produktivitas maksimum? Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau! button Lanskap kecerdasan buatan (AI) terus berkembang dengan kecepatan tinggi, dan Model Bahasa Besar (LLM) menjadi semakin kuat dan mudah diakses. Meskipun banyak orang berinteraksi dengan model

Di Mana Unduh Swagger UI Bahasa Indonesia Gratis?Sudut Pandang

Di Mana Unduh Swagger UI Bahasa Indonesia Gratis?

Ingin Swagger UI dalam Bahasa Indonesia? Artikel ini menjelaskan mengapa tidak ada unduhan resmi gratis dan cara mengaktifkan terjemahan. Jelajahi fitur Swagger dan lihat mengapa Apidog adalah alternatif Swagger superior untuk desain, pengujian, dan dokumentasi API yang terintegrasi.

Oliver Kingsley

April 23, 2025

Di Mana Mengunduh Postman Bahasa Indonesia Gratis?Sudut Pandang

Di Mana Mengunduh Postman Bahasa Indonesia Gratis?

Bisakah Anda mengunduh Postman Bahasa Indonesia gratis? Meskipun Postman tidak memiliki dukungan Bahasa Indonesia native, ada solusi lain. Jelajahi ini & temukan Apidog, alternatif Postman terpadu yang kuat untuk menyederhanakan alur kerja API Anda, apa pun bahasanya.

Oliver Kingsley

April 22, 2025