Nasıl çalışır
JWT Decoder — JSON Web Token header, payload ve son kullanma tarihini çöz. Tüm işlemler tarayıcında yapılır — yükleme yok, üyelik yok, e-posta gerek yok. Sonsuza dek ücretsiz.
Son güncelleme:
JWT Decoder hakkında
JSON Web Token dışarıdan nokta ve base64'lerden oluşan opak bir string gibi görünür ama içinde gayet okunaklı bir JSON header ve payload, artı bunu issuer'ın oluşturduğunu kanıtlayan bir imza vardır. Bu JWT çözücü üç segmenti ayırır, base64url decode eder, JSON'ı pretty-print yapar ve standart zaman claim'lerini (iat, nbf, exp) yerel saatine çevirir; böylece token'ın expire olup olmadığını, ne zaman issue edildiğini ve kime verildiğini anında görürsün.
Decode etmek backend developer'larının haftada onlarca kez yaptığı şey: bir API'den 401 dönüyor, bearer token'ı kopyalıyorsun, Node veya Python açmadan "sub", "aud", "scope" ve "exp" değerlerini görmek istiyorsun. Bunu rastgele bir online araçta yapmak risklidir çünkü token'lar genelde email, internal user id, role claim ve tenant identifier taşır — üçüncü tarafa loglatmak istemediğin tam olarak bu veridir.
Bu çözücüde her şey tarayıcında client-side çalışır. Token cihazından çıkmaz, hiçbir sunucuya gönderilmez, localStorage'a yazılmaz, sekmeyi kapatınca yok olur. İmza bilerek doğrulanmaz — bunun için issuer'ın secret veya public key'i gerek, ondan biz hiçbir zaman istemeyiz. Kriptografik doğrulama gerektiğinde backend'ini veya bir JWT kütüphanesini kullan.
JWT Decoder nasıl kullanılır
- JWT'yi (uzun "xxx.yyy.zzz" string'i) input kutusuna yapıştır.
- Çözülen Header'da issuer'ın kullandığı algoritmayı (alg) ve key id'yi (kid) gör.
- Payload'da sub, aud, iss, scope ve servisinin eklediği custom alanlar gibi claim'leri incele.
- Zaman bölümünü kontrol et — "Süresi doluyor", "Verildiği an" ve "Geçerli olduğu an" yerel saate çevrilir.
- Bir bakışta kontrol için "Geçerli" / "Süresi dolmuş" rozetine bak, sonra ihtiyacın olan claim'leri kopyala.
- İmza gösterilir ama doğrulanmaz — kriptografik doğrulama için token'ı backend'ine ver.
Yaygın kullanım senaryoları
- Bearer token'ın gerçekten expire olup olmadığını kontrol ederek "401 Unauthorized" yanıtlarını debug etmek.
- Bir OAuth2 veya OIDC access token'ında scope, audience ve issuer'ın API'nin beklediğiyle eşleştiğini doğrulamak.
- Auth provider'ın login sırasında eklediği custom claim'leri (tenant id, role, feature flag) okumak.
- Sunucuya göre birkaç saniye ileride patlayan "nbf" (not before) saat kayması (clock-skew) sorunlarını tespit etmek.
- Bir token'ın redact edilmiş görünümünü, Slack'e veya public bir siteye yapıştırmadan bir takım arkadaşıyla paylaşmak.
İpuçları ve dikkat edilmesi gerekenler
- Decode başarısız oluyorsa, iki nokta dahil token'ın tamamını kopyaladığından emin ol — birçok UI ilk boşlukta truncate eder veya sondaki signature'ı gizler.
- Çözülmüş bir payload, gerçekliği konusunda hiçbir şey kanıtlamaz. Geçerli görünümlü bir JWT herkes üretebilir; gerçek olduğunu sadece issuer key'iyle imza doğrulaması söyler.
- Screenshot paylaşırken JWT'lere parola gibi davran — "expire" olmuş token'lar bile user id, email ve internal scope adlarını sızdırır.
- Header'da "alg" "none" ise token hiç imzalanmamıştır ve servisin reddetmelidir. Bu çözücü payload'u yine gösterir, böylece bug'ı doğrularsın.
Sıkça sorulan sorular
Token sunucunuza gönderiliyor mu?
Hayır. Çözüm tamamen tarayıcında JavaScript ile yapılır — token cihazından çıkmaz.
İmza doğrulaması yapıyor mu?
Hayır. Bu araç sadece header ve payload'u çözer. İmza doğrulaması için secret/public key gerekir, ondan biz sormayız — backend'in veya bir JWT kütüphanesi kullanman lazım.
Tarihler neden yerel saatime göre?
exp, iat, nbf gibi standart JWT claim'leri Unix timestamp (UTC). Okunaklı olsun diye tarayıcının yerel saatine çeviriyoruz.
Bu araç token'ımı bir sunucuya gönderir mi?
Hayır. Çözüm tarayıcı sekmende çalışan saf JavaScript. fetch yok, telemetri yok, log yok. DevTools → Network'ü açıp token yapıştırırsan sıfır istek görürsün.
Şifrelenmiş JWE token'larını da çözüyor mu?
Hayır. JWE (şifrelenmiş JWT) okunabilmek için alıcının private key'ine ihtiyaç duyar. Bu araç sadece OAuth2/OIDC akışlarının büyük çoğunluğunun kullandığı JWS (imzalı JWT) ile çalışır.
Payload neden hem sayısal timestamp hem de okunaklı tarih gösteriyor?
Standart claim'ler (exp, iat, nbf) UTC'de Unix saniyesi olarak saklanır. Hem ham sayıyı hem de yerel saate çevrilmiş tarihi gösteriyoruz; matematik yapmadan expiry sorunlarını fark edesin diye.
İlgili araçlar
- URL Encoder/DecoderURL'lerini ve URI bileşenlerini encode/decode et
- UUID ÜreticiKriptografik rastgele UUID v4 toplu üret
- Regex Test AracıRegex desenlerini canlı eşleşme vurgulamasıyla test et
- Cron İfade OluşturucuCron expression oluştur ve insan diline çevir
- SQL FormatlayıcıSQL sorgularını güzelleştir, küçült veya tüm büyük dialect'lerde formatla
- YAML ↔ JSON ÇeviriciYAML ile JSON arasında çift yönlü dönüşüm