JWT

JWT (JSON Web Token) adalah format ringkas untuk membawa klaim sebagai objek JSON. JWT sering digunakan dalam alur Authentication dan authorization pada aplikasi web atau mobile, tetapi bukan protokol login atau jaminan keamanan dengan sendirinya.

Struktur

JWT bertanda tangan dalam format JWS Compact memiliki tiga bagian yang dipisahkan titik: header.payload.signature.

Header dan payload menggunakan encoding Base64url, bukan enkripsi. JWT terenkripsi memakai JWE, yang memiliki lima bagian dalam format compact. Jadi, tidak semua JWT terdiri dari tiga bagian.

Penggunaan dan batasan

Access token berbentuk JWT sering dikirim melalui header HTTP Authorization: Bearer <token>. Klaim yang dibawanya memungkinkan validasi lokal sesuai profil token, tetapi tidak menghilangkan kebutuhan kunci tepercaya dan kebijakan akses.

Server harus memverifikasi signature, membatasi algoritme yang diterima, serta memeriksa issuer, audience, masa berlaku, dan klaim wajib sesuai profilnya. Membaca atau mendekode payload saja bukan validasi.

Payload bertanda tangan biasa dapat dibaca pemegang token. Jangan menaruh secret di dalamnya; gunakan HTTPS dan lindungi token dari kebocoran. Logout juga tidak otomatis membatalkan semua JWT yang masih berlaku.

JWT adalah format klaim, bukan strategi autentikasi membahas implikasi desainnya. Authentication Strategies membandingkan JWT dengan session dan pendekatan lain, termasuk kebutuhan pencabutan akses.

Sumber