JWT Decoder (JWT Çözücü)

Bir JSON Web Token yapıştırarak header ve payload'ını okuyun, ne zaman sona ereceğini görün ve her claim'i anlayın. Token'ınız tarayıcınızdan asla çıkmaz.

Tarayıcınızda çalışırKayıt gerekmezHiçbir şey yüklenmez

Çözmek, doğrulamak demek değildir. Bir JWT'nin header ve payload kısımlarını herkes okuyabilir, çünkü bunlar yalnızca base64url ile kodlanmıştır. Bu araç token'ın ne iddia ettiğini gösterir; token'ın gerçek olduğunu kanıtlamaz. İmzayı her zaman sunucunuzda doğrulayın.

Header

Payload


      

İmzayı doğrula (isteğe bağlı, HS256/HS384/HS512)

Girdiğiniz gizli anahtarla HMAC imzasını tarayıcınızın Web Crypto API'si üzerinden kontrol eder. Gizli anahtar bu sayfadan asla çıkmaz. RSA/ECDSA token'ları yayıncının açık anahtarını gerektirir ve burada doğrulanmaz.

JWT Decoder nasıl kullanılır?

  1. Token'ı Kodlanmış token kutusuna yapıştırın. Authorization header'ından gelen baştaki Bearer yok sayılır.
  2. Header ve payload anında çözülür ve biçimlendirilmiş JSON olarak gösterilir.
  3. Claim'lerin açıklaması tablosunu okuyun: exp, iat ve nbf “şu kadar süre sonra sona erecek” / “şu kadar süre önce sona erdi” bilgisiyle tarihlere dönüştürülür.
  4. Süre sorunları için durum çubuğunu, alg: none gibi riskli ayarlar için uyarıları kontrol edin.
  5. İsterseniz HS256, HS384 veya HS512 imzasını yerel olarak doğrulamak için paylaşılan gizli anahtarı girin.

Bir JWT'nin içinde ne var?

Bir JSON Web Token (RFC 7519), noktalarla birleştirilmiş üç base64url dizesinden oluşur: header.payload.signature. Header, imzalama algoritmasını (alg) ve token türünü belirtir. Payload, kullanıcının kim olduğu ve token'ın ne zaman sona ereceği gibi claim'leri taşır. İmza (signature) ise ilk iki parça üzerinden bir gizli anahtar veya özel anahtarla hesaplanır.

Çözmek, doğrulamak değildir

Header ve payload şifrelenmemiş, yalnızca kodlanmıştır; bu yüzden token'a sahip olan herkes bunları okuyabilir. JWT payload'ına asla parola veya gizli bilgi koymamanızın nedeni budur. Çözme, bir token'ın ne söylediğini gösterir. İmzayı doğrulamak ise (genellikle API sunucunuzda jose veya PyJWT gibi bir kütüphaneyle) token'ı kimin yayınladığını ve değiştirilmediğini kanıtlar. Sunucu ayrıca exp, nbf, iss ve aud değerlerini kontrol etmeli ve beklenmeyen algoritmaları reddetmelidir.

Kayıtlı claim'ler için kopya kâğıdı

ClaimAnlamı
issYayıncı (issuer): token'ı kimin oluşturup imzaladığı
subKonu (subject): genellikle kullanıcı ID'si
audHedef kitle (audience): token'ın hangi API için olduğu
expSona erme zamanı, Unix epoch'tan bu yana saniye cinsinden
nbfBu zamandan önce geçerli değil (not before)
iatOluşturulma (issued at) zamanı
jtiBenzersiz token ID'si, iptal listeleri için kullanışlı

“Token expired” hatalarında hata ayıklama

Bir API yeni görünen bir token'ı reddediyorsa exp ve nbf değerlerini sunucu saatiyle karşılaştırın. Makineler arasında küçük saat kaymaları yaygındır, bu yüzden çoğu kütüphane 30-60 saniyelik tolerans tanır. Ayrıca exp'in saniye cinsinden olduğunu kontrol edin: milisaniye değeri sık yapılan bir hatadır ve sona erme tarihini binlerce yıl ileriye taşır.

Sıkça sorulan sorular

Production'daki bir JWT'yi buraya yapıştırmak güvenli mi?
Çözme işlemi tamamen tarayıcınızda JavaScript ile yapılır. Token yüklenmez, loglanmaz veya saklanmaz. Yine de her kimlik bilgisinde olduğu gibi canlı token'lara dikkat edin ve ekran görüntüsü paylaşırken süresi dolmuş veya test token'larını tercih edin.
Bu araç JWT imzasını doğruluyor mu?
Yalnızca çözme işlemi doğrulama yapmaz. İsterseniz paylaşılan gizli anahtarı girerek HS256, HS384 ve HS512 token'larını doğrulayabilirsiniz; HMAC, Web Crypto API ile yerel olarak hesaplanır. RS256 ve ES256 token'ları ise sunucunuzda yayıncının açık anahtarıyla doğrulanmalıdır.
Token'ım neden süresi dolmuş görünüyor?
exp claim'i bilgisayarınızın saatine göre geçmişte kalmış. Yeni bir token isteyin veya refresh token'ınızla yenileyin. Zamanlar yanlış görünüyorsa saat kaymasını ya da milisaniye cinsinden yazılmış bir exp değerini kontrol edin.
JWT, JWS ve JWE arasındaki fark nedir?
JWT, claim'lerin biçimidir. JWS, üç parçalı imzalı bir JWT'dir ve bu aracın çözdüğü de budur. JWE ise beş parçalı şifrelenmiş bir JWT'dir; payload'ı şifre çözme anahtarı olmadan okunamaz.
alg “none” neden tehlikeli?
İmzasız bir token'ı herkes sahteleyebilir. Sunucular alg: none değerini reddetmeli ve yalnızca bekledikleri belirli algoritmayı kabul etmelidir.

İlgili araçlar