CodeKitHub
Türkçe
Kodlama Araçları

JWT Çözücü

Herhangi bir JWT’yi (JSON Web Token) yapıştırın ve başlığı ile yükünün anında kodunun çözülüp biçimlendirilmesini izleyin — geçerlilik süresinin dolup dolmadığı da dahil. Her şey tarayıcınızda gerçekleşir: token hiçbir yere gönderilmez ve imza doğrulaması yapılmaz (bu araç yalnızca kodunu çözer, token’ın gerçek olup olmadığını kontrol etmez).

Başlık

Yük

Tamamen tarayıcınızda şifresi çözülür — imza doğrulaması yapılmaz ve jeton hiçbir yere gönderilmez.

Bu Araç Nedir?

JWT (JSON Web Token), iki taraf arasında iddiaları aktarmak için kullanılan, kompakt ve URL ile uyumlu bir dizedir — en yaygın olarak oturum açma işleminden sonra bir kimlik doğrulama jetonu olarak kullanılır. Üç noktayla ayrılmış üç bölümden oluşur: bir başlık (algoritma ve token türü), bir yük (asıl iddialar — kullanıcı kimliği, roller, son kullanma tarihi vb.) ve bir imza (sunucu tarafından tokenin tahrif edilmediğini doğrulamak için kullanılır).

Başlık ve veri yükü, şifrelenmemiş, yalnızca Base64URL ile kodlanmış JSON'dur; bu nedenle herkes gizli anahtar olmadan bunları kodunu çözüp okuyabilir. Yalnızca imzanın doğrulanması için bir gizli anahtar gereklidir. Bu araç tam da bunu yapar: okunabilir kısımların kodunu çözer ve imzayı doğrulamaya çalışmadan bunları biçimlendirilmiş JSON olarak gösterir.

Neden Kullanmalısınız?

  • JSON biçiminde, anında okunabilir başlık ve veri gövdesi — artık dizgiyi manuel olarak bölüp Base64 kodunu elle çözmeye gerek yok.
  • Otomatik geçerlilik süresi kontrolü: Yükte bir "exp" iddiası varsa, bu okunabilir bir tarihe dönüştürülür ve geçerlilik süresi dolmuş ya da geçerli olarak işaretlenir.
  • Başlık veya veri kısmı için ayrı ayrı tek tıklamayla kopyalama.
  • %100 istemci tarafında — jeton yerel olarak çözülür ve hiçbir zaman iletilmez; üretim sisteminden alınan jetonlarla bile güvenle kullanılabilir.
  • İmza doğrulaması yapılmadı veya iddia edilmedi — bu bir hata ayıklama/inceleme aracıdır, bir doğrulama aracı değildir.

Nasıl Kullanılır

  1. JWT’nizi kutucuğa yapıştırın (nokta ile ayrılmış üç bölümün tamamını içeren tam dizeyi).
  2. Yazarken başlık ve veri kısmı otomatik olarak çözülür.
  3. Token'da "exp" iddiası varsa, son kullanma tarih satırını kontrol edin — burada tam tarih ve token'ın süresinin dolup dolmadığı gösterilir.
  4. Her iki kutucuğun altındaki "Kopyala" düğmesine tıklayarak o bölümü JSON olarak kopyalayabilirsiniz.

Örnek

Giriş

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0IiwibmFtZSI6IkpvaG4gRG9lIiwiZXhwIjoxNzAwMDAwMDAwfQ.dQw4w9WgXcQ

Çıkış

Header: {"alg": "HS256"}
Payload: {"sub": "1234", "name": "John Doe", "exp": 1700000000}

İmza (üçüncü kısım) hiçbir zaman çözülmez veya kontrol edilmez — bu, gerçekliği doğrulamak için sunucu tarafında kullanılan şeffaf olmayan bir hash değeridir.

Pratik ipuçları

  • "Geçersiz belirteç" hatalarının giderilmesi: Öncelikle yükü çözerek "exp" iddiasını kontrol edin — süresinin dolmuş bir belirteç en yaygın nedendir ve bu durum, yalnızca hata mesajından her zaman açıkça anlaşılamayabilir.
  • Üçüncü taraf bir API’nin jetonunun gerçekte neler içerdiğini kontrol etme: Birçok API, erişim jetonu olarak anlaşılması zor görünen bir JWT döndürür — entegrasyonunuzun gerçekte aldığı kapsamları, kullanıcı kimliğini veya son kullanma tarihini görmek için bu JWT’yi burada çözün.
  • Bir JWT’nin şifreli olduğunu asla varsaymayın: Geliştirme aşamasında şifresi çözülmüş bir yükte hassas veriler (e-posta, dahili kimlikler) görürseniz, bu, istemcinin bu verileri okumayacağına güvenmek yerine, söz konusu verileri sunucu tarafına taşımak için bir işarettir.

Bir yükte sıkça rastlayacağınız iddialar

İddiaAnlamı
subKonu — genellikle jetonun temsil ettiği kullanıcı kimliği
expSon kullanma zamanı (Unix zaman damgası) — bu zamandan sonra jeton geçersiz hale gelir
iatYayınlanma tarihi — jetonun oluşturulduğu tarih
issİhraççı — Jetonu hangi hizmet/sunucu ihraç etti?
audHedef kitle — token hangi hizmet için tasarlanmıştır
rol / roller / kapsamÖzel iddialar — kullanıcıya verilen izinler veya roller (JWT standardının bir parçası değildir, ancak son derece yaygındır)

Sıkça Sorulan Sorular

Bu araç, JWT imzasını doğruluyor mu?

Hayır. Bir imzayı doğrulamak için, jetonu imzalamak üzere kullanılan gizli anahtar veya açık anahtar gereklidir; bu anahtarlar ise yalnızca jetonu düzenleyen sunucuda bulunur. Bu araç, yalnızca başlığı ve yükü — yani insan tarafından okunabilir kısımları — deşifre eder; böylece herhangi bir anahtara ihtiyaç duymadan iddiaları ve geçerlilik süresini inceleyebilirsiniz.

Buraya gerçek bir üretim JWT'sini yapıştırmak güvenli mi?

Şifre çözme işlemi tamamen tarayıcınızda JavaScript aracılığıyla gerçekleşir — token, bizimki dahil hiçbir sunucuya asla gönderilmez. Bununla birlikte, tokenleri şifreler gibi değerlendirin: güvenmediğiniz araçlara yapıştırmayın ve hassas iddialar içeren şifresi çözülmüş tokenlerin ekran görüntülerini paylaşmaktan kaçının.

Neden herhangi biri şifre olmadan JWT'min yükünü okuyabiliyor?

Tasarım gereği — bir JWT’nin başlığı ve yükü şifrelenmez, Base64URL ile kodlanır. Kodlama bir güvenlik önlemi değildir; yalnızca JSON verisinin URL üzerinden güvenli bir şekilde aktarılmasını sağlar. Gizli bilgileri (şifreler, kredi kartı numaraları) asla doğrudan bir JWT yüküne eklemeyin — token’a sahip olan herkesin içeriğini okuyabileceğini varsayın.

“exp” ibaresi ne anlama geliyor ve neden önemlidir?

"exp", tokenin geçerlilik süresinin sona erme zamanıdır ve Unix zaman damgası biçimindedir (1970'ten bu yana geçen saniye sayısı). Bu süre geçtikten sonra sunucular JWT'yi reddeder ve istemcinin yeniden kimlik doğrulaması yapmasını zorunlu kılar. Bu araç, bu süreyi okunabilir bir tarihe dönüştürür ve süresinin dolup dolmadığını gösterir; bu da "oturumum neden kapandı" gibi sorunların giderilmesinde yararlıdır.

Token'ımda bir JSON ayrıştırma hatası görünüyor — neden?

Ya bu dize geçerli bir JWT değil (tam olarak üç adet nokta ile ayrılmış bölümden oluşması gerekir), ya da kesilmiş ya da değiştirilmiş — bunun yaygın bir nedeni, bir token'ın yanlışlıkla birden fazla satıra bölünmesi ya da kopyalanırken sonundaki karakterlerin eksik kalmasıdır.

İlgili Araçlar