Menu

JWT Çözücü

JSON Web Token'ları parça parça incele ve doğrula.

Son güncelleme

Algoritma
KodlanmışBir JSON Web Token yapıştır
Çö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.

ClaimAdıAnlamı
issIssuerToken'ı oluşturan ve imzalayan taraf
subSubjectToken'ın kime ait olduğu — genellikle bir kullanıcı id'si
audAudienceToken'ın hangi taraf için düzenlendiği
expExpirationSonrasında token'ın geçersiz sayıldığı Unix timestamp
nbfNot BeforeToken'ın bu zamandan önce kabul edilmemesi gerektiğini söyler
iatIssued AtToken'ın ne zaman oluşturulduğu
jtiJWT IDBenzersiz tanımlayıcı — revoke (iptal) işlemleri için faydalıdır
algAlgorithm (header)İmzalama algoritması: HS256, RS256, ES256, …

Deneyebileceğiniz JWT örnekleri

Tipik bir JWT'yi inceleyin

Token

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsInJvbGUiOiJzdHVkZW50IiwiZXhwIjoxNzEwMDAwMDAwfQ.Q3hH8yzqI2OsHJ1Lyj8jJfJPa5ZpIVlh1FhJpJbqMcs

Header
{  "alg": "HS256",  "typ": "JWT"}
Payload
{  "sub": "user_123",  "role": "student",  "exp": 1710000000}

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.

Daha fazla bilgi

Diğer geliştirici araçları

Coddy ile kodlamayı öğren

BAŞLA