JSON Web Token'ları parça parça incele ve doğrula.
Son güncelleme
Algoritma—
KodlanmışBir JSON Web Token yapıştır
header.payload.signature
Çözümlenmiş
Başlık ve yük burada görünür — tokenler tarayıcınızdan çıkmaz.
JWT decoder nedir?
JWT decoder, bir JSON Web Token'ı üç parçaya — header, payload ve signature — ayırır ve ilk iki parçayı Base64URL ile çözüp JSON olarak okumanızı sağlar. Geliştiriciler login akışlarını, yetkilendirmeyi, oturum claim'lerini ve token süresi dolma sorunlarını ayıklarken sürekli bu aracı kullanır.
Bir JWT'yi çözmek, ona güvenmek anlamına *gelmez*. Header ve payload zaten okunabilir olacak şekilde tasarlanmıştır — şifrelenmemiştir, yalnızca Base64URL ile kodlanmıştır. Token'ın beklenen taraf tarafından imzalanıp imzalanmadığını ve değiştirilip değiştirilmediğini kontrol eden şey verification (doğrulama) sürecidir.
Bir JWT şu yapıdadır: header.payload.signature. Her parça Base64URL ile kodlanır ve aralarında nokta vardır. Header hangi imzalama algoritmasının kullanıldığını söyler, payload claim'leri taşır (kullanıcının kim olduğu, token'ın ne zaman süreceği, neye yetkili olduğu), signature ise sunucunun token'ın değiştirilmediğini kanıtlamasını sağlar.
JWT'leri çözerken öğrenecekleriniz
Bir JWT, noktayla ayrılmış üç Base64URL parçadan oluşur: header.payload.signature.
sub, role, iat, nbf, exp gibi yaygın claim'ler kimlik, izinler, oluşturulma zamanı ve sona erme zamanını ifade eder.
Çözülen bir payload herkes tarafından düzenlenebilir — sunucunun değişiklikleri yakalamasını yalnızca signature sağlar.
Adım adım JWT nasıl çözülür
1
Token'ın tamamını yapıştırın
JWT'yi giriş kutusuna yapıştırın. Görünüşü şöyle olmalı: xxxx.yyyy.zzzz — noktalarla birleştirilmiş üç Base64URL parça.
2
Header'ı okuyun
Header size imzalama algoritmasını (alg) ve token tipini söyler. "alg": "none" görürseniz dikkat — bu, token'ın imzasız olduğu ve güvenilemeyeceği anlamına gelir.
3
Payload claim'lerini okuyun
Payload, tüm claim'leri içeren JSON'dur. sub (kullanıcı id), exp (sona erme), iat (oluşturulma) gibi alanlara ve uygulamanızın eklediği role ya da tenant gibi özel claim'lere bakın.
4
Süreyi kontrol edin
exp Unix timestamp'ini bir tarihe çevirin — geçmişte kalmışsa token süresi dolmuş demektir ve düzgün çalışan her API onu reddedecektir.
5
Signature'ı doğrulayın (opsiyonel)
Elinizde secret ya da public key varsa, doğrulayıcıya yapıştırarak imzanın geçerli olup olmadığını teyit edin. Token'ın içeriğine ancak signature doğrulandıktan sonra güvenebilirsiniz.
Standart JWT claim'leri
Aşağıdakiler JWT spesifikasyonunda (RFC 7519) tanımlı registered claim'lerdir. Her uygulama bunların yanına kendi özel claim'lerini ekleyebilir.
Claim
Adı
Anlamı
iss
Issuer
Token'ı oluşturan ve imzalayan taraf
sub
Subject
Token'ın kime ait olduğu — genellikle bir kullanıcı id'si
aud
Audience
Token'ın hangi taraf için düzenlendiği
exp
Expiration
Sonrasında token'ın geçersiz sayıldığı Unix timestamp
nbf
Not Before
Token'ın bu zamandan önce kabul edilmemesi gerektiğini söyler
iat
Issued At
Token'ın ne zaman oluşturulduğu
jti
JWT ID
Benzersiz tanımlayıcı — revoke (iptal) işlemleri için faydalıdır
Header HS256 diyor (paylaşılan secret kullanan bir algoritma). Payload kullanıcıyı, rolünü ve token'ın ne zaman süreceğini tanımlıyor. Üçüncü parça da signature. (Bu yalnızca demo amaçlı bir token — gerçek bir secret ile signature doğrulanmaz.)
Token'ın süresinin dolup dolmadığını kontrol edin
Payload claim
{"exp":1710000000}
exp saniye cinsinden bir Unix timestamp'tir. Bunu bir tarihe çevirin — geçmişte kalmışsa token süresi dolmuş demektir ve düzgün yazılmış bir backend onu reddeder.
Tehlikeli "none" algoritmasını yakalayın
Header
{"alg":"none","typ":"JWT"}
Bir sunucu "alg": "none" kabul ediyorsa, saldırgan signature olmadan istediği payload'ı uydurabilir. Production'da bu header'ı her zaman reddedin.
Yaygın JWT hataları
Payload'a parola, secret veya hassas kişisel veri koymak. JWT'ler okunabilirdir, şifreli değildir.
Bir token'ı çözüp signature'ı kontrol etmeden geçerli varsaymak.
Base64URL'in okunabilir olmasını şifreleme ile karıştırmak — JWT payload'ları bilinçli olarak kolay okunur.
JWT SSS
JWT nedir?
JWT, JSON Web Token'ın kısaltmasıdır. İki taraf arasında claim taşımak için kullanılan; kompakt, imzalı ve URL-safe bir token formatıdır — en sık olarak da sunucu ile tarayıcı arasında oturum açmış bir kullanıcıyı temsil etmek için kullanılır.
Bir JWT'yi nasıl çözerim?
Token'ı bir JWT decoder'a yapıştırın ya da noktalardan parçalara bölüp ilk iki parçayı Base64URL ile çözün. Header ve payload size JSON olarak döner; üçüncü parça signature'dır.
Bir JWT'nin süresinin dolup dolmadığını nasıl anlarım?
Payload'daki exp claim'ine bakın. Saniye cinsinden bir Unix timestamp'tir. Şu anki zaman exp'i geçtiyse token'ın süresi dolmuştur.
Bir JWT'yi herkes çözebilir mi?
Evet. Header ve payload Base64URL ile kodlanmıştır, şifrelenmemiştir. Signature yalnızca token'ın değiştirilmediğini kanıtlar — içeriği gizlemez.
JWT verification ne demek?
Verification, beklenen secret ya da public key kullanılarak signature'ın yeniden hesaplanması ve token'daki signature ile karşılaştırılmasıdır. İkisi eşleşiyorsa payload güvenilir ve değiştirilmemiştir.
JWT'nin içine parola koymalı mıyım?
Hayır. Token'a sahip olan herkes payload'ı okuyabilir. Yalnızca hassas olmayan kimlik bilgilerini ve claim'leri saklayın; güvenlik için kısa süreler ve refresh token'larla destekleyin.