Back to blog
Backend

Apa itu JWT (JSON Web Token)? Konsep Autentikasi API Modern

Jika password yang disimpan di database sudah diacak, bagaimana cara server tahu bahwa user memasukkan password yang benar saat Login? Kenalan dengan JWT.

super admin·30 Juni 2026·2 min read
Apa itu JWT (JSON Web Token)? Konsep Autentikasi API Modern
Article Content

Stateless: Server yang Pelupa

Protokol HTTP (dunia internet) pada dasarnya mengidap penyakit *Amnesia* (Stateless). Jika kamu Login di halaman Beranda, lalu kamu berpindah ke halaman Profil, Server akan lupa siapa dirimu dan menyuruhmu Login lagi. Di masa lalu, kita memakai Session (Server menyimpan ingatan di memori RAM-nya). Namun ini membebani server.

Di era modern (Mobile App & React), kita menggunakan JWT (JSON Web Token). JWT memungkinkan *Server* tidak perlu mengingat apapun! Server cukup memberikan sebuah "KTP Digital Bertanda Tangan" kepada pengguna.

Struktur Fisik Sebuah JWT

Jika kamu pernah melihat JWT, bentuknya adalah sebuah teks (String) rongsokan yang sangat panjang dan selalu dipisahkan oleh Dua Buah Tanda Titik. Bentuknya: aaaaa.bbbbb.ccccc.

Bagian 1: Header (aaaaa)

Bagian pertama ini hanyalah teks biasa (di-encode dengan Base64) yang memberitahu bahwa, "Hai, ini adalah token berjenis JWT dan saya diamankan dengan algoritma HS256."

Bagian 2: Payload / Isi Tas (bbbbb)

Ini adalah bagian terpenting tempat kita menyimpan informasi. Di dalam Payload ini, kita menyelipkan data-data identitas ringan pengguna (Misal: { "id": 1, "role": "admin" }).
PERINGATAN: Payload ini BISA DIBACA OLEH SIAPAPUN (Transparan). Jadi JANGAN PERNAH menyelipkan *Password* atau data kartu kredit ke dalam Payload JWT!

Bagian 3: Signature / Tanda Tangan (ccccc)

Ini adalah sihir pengamannya. Bagian ketiga ini tercipta dari gabungan Header + Payload + SEBUAH KATA SANDI RAHASIA SERVER. Kata sandi server ini (Secret Key) HANYA diketahui oleh komputer *Backend*-mu (Disimpan di file .env).

Bagaimana JWT Bekerja Mencegah Penipuan?

Misalkan *Hacker* Budi (ID: 2) berhasil mencuri JWT miliknya sendiri. Budi iseng meng-decode bagian Payload-nya, lalu memalsukannya (mengganti tulisan "id": 2 menjadi "id": 1 milik Admin).

Saat Budi mengirimkan JWT palsu itu ke Server, apa yang terjadi? Server akan menolaknya mentah-mentah!
Kenapa? Karena saat Payload-nya diubah, Bagian Ke-3 (Tanda Tangannya) sudah tidak cocok lagi secara matematika! Budi tidak bisa membuat Tanda Tangan yang baru karena ia TIDAK TAHU apa Secret Key yang ada di servermu. Keren, bukan?

Mau langsung pakai template?

Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.

Browse Templates