tigtools

JWT Çözücü

Header ve claims bilgilerini okumak ve token’ın ne zaman sona ereceğini görmek için bir JWT yapıştırın. Çözümleme tarayıcınızda yapılır; imza doğrulanmaz.

Tarayıcınızda çalışır Kayıt gerekmez

Çözümleme, doğrulama anlamına gelmez: herkes istediği içeriğe sahip bir token oluşturabilir. Bu araç imzayı doğrulamaz. Araç yalnızca tarayıcınızda çalışır; yine de canlı üretim token’larını herhangi bir web sitesine yapıştırmaktan kaçının.

Nasıl kullanılır?

  1. Authorization başlığından, çerezden veya tarayıcınızın geliştirici araçlarından bir token kopyalayın. Başındaki “Bearer ” otomatik olarak kaldırılır.
  2. Token’ı kutuya yapıştırın. Header ve payload, biçimlendirilmiş JSON olarak görüntülenir.
  3. Durum satırını ve claims tablosunu inceleyerek issuer, audience ve son kullanma tarihlerini yerel saatinizde görün.
  4. Başka bir yerde kullanmanız gerekirse header veya payload JSON’unu kopyalayın.

Nasıl çalışır?

JSON Web Token (JWT, RFC 7519), yaygın kullanılan imzalı biçiminde (JWS), noktalarla ayrılmış ve base64url ile kodlanmış üç parçadan oluşur. Header, token'ın hangi algoritmayla imzalandığını belirtir; örneğin HS256 (SHA-256 kullanan HMAC) veya RS256 (RSA). Payload, kullanıcı ve token'ın kendisi hakkındaki ifadeler olan claim'leri içerir. İmza, sunucunun header ve payload'ın değiştirilmediğini kontrol etmesini sağlar.

Header ve payload yalnızca kodlanır, şifrelenmez. Token'a sahip olan herkes içeriğini okuyabilir; bu araç da tam olarak bunu yapar. JWT payload'larına gizli bilgi koymayın.

Bir token'ın kodunu çözmek, token hakkında herhangi bir şeyi kanıtlamaz. Token'ı veren tarafın anahtarı olmadan imzanın geçerli olup olmadığı anlaşılamaz; bu nedenle buradaki sonuç, token'a güvenilip güvenilmeyeceğine karar vermek için asla kullanılmamalıdır. Doğrulama, imzayı, algoritmayı, exp, nbf, iss ve aud değerlerini kontrol eden, güncel bir JWT kütüphanesiyle sunucunuzda yapılmalıdır.

Kayıtlı claim'ler tabloda açıklanmıştır. exp, nbf ve iat, NumericDate değerleridir: 1 Ocak 1970 UTC'den itibaren geçen saniye sayısı. Araç bu değerleri saat diliminizdeki tarihlere dönüştürür ve sunucuların saat farkları için genellikle tanıdığı küçük toleransı uygulamadan cihazınızın saatiyle karşılaştırır. Cihazınızın saati yanlışsa durum da yanlış gösterilir.

Beş parçalı token'lar şifrelenmiş JWT'lerdir (JWE). Payload'ları anahtar olmadan çözülemez; bu nedenle araç yalnızca biçimi bildirir.

Örnekler

API'm neden 401 döndürüyor?

Uygulamanızın gönderdiği erişim token'ının kodunu çözün. Durum satırında “... tarihinde süresi doldu” yazıyorsa istemcinin token'ı yenilemesi gerekir. aud değeri https://api.example.com olarak görünüyorsa ancak https://api2.example.com adresine istek gönderiyorsanız audience eşleşmiyor demektir.

OpenID Connect ID token'ını inceleme

Bir oturum açma sağlayıcısından alınan ID token; sağlayıcıyı belirten iss, kalıcı kullanıcı kimliği sub, istemci kimliğiniz aud, iat ve exp değerlerinin yanı sıra email ve name gibi profil claim'lerini içerir. Token'ın kodunu çözerek uygulamanızın gerçekte hangi claim'leri aldığını görebilirsiniz.

Zaman damgası claim'ini okuma

Payload içinde "exp": 1735689600 bulunuyor. Claim'ler tablosunda bu değer, yerel saatinize dönüştürülmüş 1 Ocak 2025, 00:00:00 UTC olarak ve bu tarihin ne kadar geçmişte ya da gelecekte olduğuyla birlikte gösterilir.

Sık sorulan sorular

Bu araç JWT imzasını doğrular mı?

Hayır. Yalnızca header ve payload'ın kodunu çözer. Doğrulama için gizli anahtar (HS256 için) veya token'ı veren tarafın açık anahtarı (RS256 ve ES256 için) gerekir; bu işlem sunucunuzda güvenilir bir kütüphaneyle yapılmalıdır.

Token'ımı buraya yapıştırmak güvenli mi?

Token'ın kodu tarayıcınızda çözülür ve hiçbir yere gönderilmez. Yine de geçerli bir token, süresi dolana kadar parola gibi kullanılabilir. Bu nedenle süresi dolmuş veya test token'larını tercih edin ve üretim token'larını güvenmediğiniz araçlara asla yapıştırmayın.

Payload’ı neden herkes okuyabilir?

İmzalı JWT’ler base64url ile kodlanır; bu şifreleme değildir. İmza, token’ın değiştirilmesini önler ancak içeriğinin okunmasını engellemez. İçeriğin gizli kalması gerekiyorsa şifrelenmiş bir JWT (JWE) kullanın veya verileri sunucuda tutun.

“exp” ne anlama gelir ve hangi birimle ifade edilir?

exp, NumericDate biçiminde bir son kullanma zamanıdır: 1970-01-01 00:00:00 UTC’den itibaren geçen tam saniye sayısıdır (milisaniye değil). Token, belirtilen zamana gelindiğinde veya bu zaman geçtikten sonra reddedilmelidir.

Neden “geçerli base64url değil” hatası alıyorum?

Token büyük olasılıkla kopyalanırken kesilmiş veya değiştirilmiştir. Örneğin son karakterleri eksik olabilir, etrafına tırnak işaretleri eklenmiş olabilir ya da URL kodlaması nedeniyle nokta yerine %2E kullanılmış olabilir. Ham token’ı verildiği hâliyle eksiksiz yapıştırın.

Gizlilik

Token, tarayıcınızda JavaScript ile çözülür. Herhangi bir sunucuya gönderilmez, saklanmaz veya analiz verilerine eklenmez. İmza doğrulaması ya da anahtar araması yapılmadığından ağ isteği gönderilmez.