Bir JWT'nin Anatomisi
Bir JSON Web Token, noktayla ayrılmış üç parçadan oluşur: header.payload.signature. İlk bakışta anlamsız görünen bu uzun karakter dizisi aslında düzenli bir yapıya sahiptir ve her parçanın kendine ait bir görevi vardır. JWT Çözücü tam da bu üç parçayı ayırıp okunabilir hale getirmek için kullanılır.
İlk parça olan header (başlık), token'ın hangi algoritmayla imzalandığını ve türünü belirtir. Örneğin alg alanı HS256 veya RS256 değerini taşır, typ alanı ise genellikle JWT olur. İkinci parça olan payload (yük), asıl verinin bulunduğu yerdir. Kullanıcı kimliği, yetkiler ve zaman bilgileri burada saklanır. Üçüncü parça olan signature (imza) ise token'ın değiştirilmediğini doğrulamak için üretilir.
Header ve payload, base64url adı verilen bir kodlamayla saklanır. Bu, klasik Base64'e çok benzer ama URL'lerde ve HTTP başlıklarında sorun çıkarmayacak şekilde + ve / karakterleri farklı işaretlerle değiştirilir. Base64url ne bir şifreleme ne de sıkıştırmadır, yalnızca metni güvenle taşınabilir bir biçime dönüştüren bir kodlamadır. Bu yüzden bir token'ı çözmek için hiçbir gizli anahtara ihtiyaç duyulmaz.
Bu ayrımı daha iyi kavramak isterseniz Base64 çözme aracımız ile bir metnin nasıl kodlanıp çözüldüğünü deneyebilirsiniz. Çözülen JSON çıktısını daha düzenli okumak için ise JSON düzenleyici işinizi kolaylaştırır. Bir token'ın standardı 7.519 numaralı RFC belgesinde tanımlanmıştır ve tüm modern kimlik doğrulama sistemleri bu yapıyı temel alır.