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
Claim'lerin açıklaması
İ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?
- Token'ı Kodlanmış token kutusuna yapıştırın. Authorization header'ından gelen baştaki
Beareryok sayılır. - Header ve payload anında çözülür ve biçimlendirilmiş JSON olarak gösterilir.
- Claim'lerin açıklaması tablosunu okuyun:
exp,iatvenbf“şu kadar süre sonra sona erecek” / “şu kadar süre önce sona erdi” bilgisiyle tarihlere dönüştürülür. - Süre sorunları için durum çubuğunu,
alg: nonegibi riskli ayarlar için uyarıları kontrol edin. - İ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ı
| Claim | Anlamı |
|---|---|
iss | Yayıncı (issuer): token'ı kimin oluşturup imzaladığı |
sub | Konu (subject): genellikle kullanıcı ID'si |
aud | Hedef kitle (audience): token'ın hangi API için olduğu |
exp | Sona erme zamanı, Unix epoch'tan bu yana saniye cinsinden |
nbf | Bu zamandan önce geçerli değil (not before) |
iat | Oluşturulma (issued at) zamanı |
jti | Benzersiz 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?
Bu araç JWT imzasını doğruluyor mu?
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?
alg “none” neden tehlikeli?
alg: none değerini reddetmeli ve yalnızca bekledikleri belirli algoritmayı kabul etmelidir.