JSON Web Token Çözümleme
Bir JSON Web Token (JWT), sistemler arasında kimlik ve izin bilgilerini aktarmak için kullanılan kompakt bir metin dizisidir — genellikle giriş yaptıktan sonra bir Authorization: Bearer başlığı olarak kullanılır. Rastgele bir metin gibi görünür, ancak Base64URL ile kodlanmış üç bölümden oluşur: bir başlık (header), talepleri (claims) içeren bir veri yükü (payload) ve bir imza (signature). Bu JWT çözücü, token'ı parçalara ayırır, ilk iki kısmı okunabilir JSON formatına dönüştürür ve önemli talepleri açıklar. Çözümleme ve doğrulama işlemleri yerel olarak gerçekleşir, bu nedenle token'ınız asla başka bir yere aktarılmaz.
Özellikler
- Her biri kopyalama butonuna sahip, çözümlenmiş ve okunabilir formatta (pretty-printed) başlık ve veri yükü.
- Açıklamalı zaman talepleri:
iat,nbf,expveauth_timedeğerleri epoch saniyelerinden yerel saat diliminizdeki tarihlere dönüştürülür. - Token'ın süresinin dolup dolmadığını veya henüz aktif olup olmadığını bir bakışta gösteren süre sonu kontrolü.
- Tarayıcınızın Web Crypto API'sini kullanarak HS256, HS384 ve HS512 için HMAC imza doğrulaması.
- Sayfa yüklendikten sonra çevrimdışı çalışır; hiçbir veri dışarıya gönderilmez.
Ne zaman kullanılır
Kimlik doğrulama hatalarını ayıklama. Bir istek 401 Unauthorized hatasıyla başarısız olduğunda, token'ın süresinin dolup dolmadığını, doğru hedef kitle (aud) için oluşturulup oluşturulmadığını veya beklenen rolleri ve kapsamları (scopes) taşıyıp taşımadığını kontrol etmek için token'ı çözümleyin.
API geliştirme ve test etme. Yayına almadan önce, sunucunuzun token içine doğru süre sonu bilgileriyle birlikte hedeflediğiniz talepleri eklediğini doğrulayın.
OAuth ve OpenID Connect'in nasıl çalıştığını öğrenme. Kimlik sağlayıcılardan alınan kimlik (ID) ve erişim (access) token'ları genellikle JWT formatındadır. Bir test token'ını çözümlemek, sağlayıcının kullanıcı hakkında hangi bilgileri paylaştığını gösterir.
JWT'nin Yapısı
header.payload.signature
- Header — token türü ve imzalama algoritması, örneğin
{"alg":"HS256","typ":"JWT"}. - Payload — claim'ler (veri alanları). Kayıtlı claim'ler arasında
iss(veren),sub(konu, genellikle kullanıcı kimliği),aud(hedef kitle),exp,nbf,iatvejti(token kimliği) bulunur. Uygulamalarnameveyarolegibi özel claim'ler ekleyebilir. - Signature —
header.payloadverisinin bir gizli anahtar (HMAC) veya özel anahtar (RSA, ECDSA, EdDSA) ile imzalanmasıyla oluşturulur. Header veya payload'un tek bir karakteri bile değiştirilirse imza artık eşleşmez.
Payload yalnızca kodlandığı için, JWT içine asla parola gibi gizli bilgiler koymayın. Diğer Base64 verilerini çözmek için Base64 aracı'nı; herhangi bir zaman damgasını incelemek için Unix Timestamp Dönüştürücü'yü kullanın.