JWT Çözücü nedir?
JWT (JSON Web Token), modern web API'lerinin kimlik doğrulama ve yetkilendirme claim'lerini temsil etmesinin standart yoludur. İmzalama algoritmasını tanımlayan bir header, gerçek claim'leri (kullanıcı kimliği, roller ve son kullanma tarihi gibi) taşıyan bir payload ve alıcı sunucunun token'ın değiştirilmediğini doğrulamasını sağlayan bir imzadan oluşan, kompakt ve kendi kendine yeten bir token'dır.
Bu çözücü, header ve payload'ı anında okuyarak kimlik doğrulama sorunlarını gidermenize, bir API'nin gerçekte hangi claim'leri gönderdiğini incelemenize veya bir token'ın ne zaman süresi dolduğunu kontrol etmenize olanak tanır — tüm bunlar bir backend, bir CLI aracı gerekmeden veya hassas token'ları üçüncü taraf bir sunucuya yapıştırmadan yapılır, çünkü her şey tarayıcınızda yerel olarak çalışır.
Bu Hesap Makinesi Ne Zaman Kullanılmalı
- Bir API'nin bir token'ı neden reddettiğini claim'lerini ve son kullanma zamanını inceleyerek hata ayıklama
- Bir destek incelemesi veya olay müdahalesi sırasında bir token'ın son kullanma zamanını kontrol etme
- Bir SSO veya OAuth sağlayıcısının uygulamanızın beklediği talepleri verdiğini doğrulama.
- Mülakat hazırlığı veya güvenlik ders çalışması için JWT'lerin nasıl yapılandırıldığını öğrenme
- Tarayıcı geliştirici araçlarından veya sunucu günlüklerinden yakalanan bir token'ın içeriğini anlamak için inceleme
- Algoritma uyumsuzluğu kimlik doğrulama hatalarını ayıklamak için token'lar arasında header algoritmasını karşılaştırma
Adımlar:
- JWT'nizi giriş kutusuna yapıştırın veya denemek için "Örnek Yükle"ye tıklayın.
- Header ve payload, siz yazarken otomatik olarak çözülür.
- iss, sub, exp ve iat gibi claim'leri düz okunabilir biçimde inceleyin.
- Zaman damgası claim'leri (exp, iat, nbf) otomatik olarak okunabilir tarihlere dönüştürülür.
Formül
JWT = base64Url(header) + "." + base64Url(payload) + "." + base64Url(signature)
Çözme: "." karakterine göre bölün, ilk iki bölümü base64Url ile çözün, JSON olarak ayrıştırın.
Doğrulama (burada yapılmaz): HMACSHA256(base64Url(header) + "." + base64Url(payload), secret) === signature
Kullanım Alanları
- Bir API'nin bir token'ı neden reddettiğini claim'lerini inceleyerek hata ayıklama
- Bir destek incelemesi sırasında bir token'ın son kullanma zamanını kontrol etme
- Bir SSO veya OAuth sağlayıcısının beklediğiniz claim'leri verdiğini doğrulama
- Mülakat hazırlığı veya ders çalışması için JWT'lerin nasıl yapılandırıldığını öğrenme
- Tarayıcı geliştirici araçlarından veya sunucu günlüklerinden yapıştırılan bir token'ı hızlıca inceleme
Temel Faydalar
- Backend veya CLI aracı olmadan herhangi bir JWT'yi anında çözer
- Her şey istemci tarafında çalışır — token'lar hiçbir zaman bir sunucuya gönderilmez
- Zaman damgası claim'lerini otomatik olarak okunabilir tarihlere dönüştürür
- Ücretsiz, kayıt gerektirmez, algoritmadan bağımsız olarak her JWT ile çalışır
Uzman İpuçları
- Bir "yetkisiz" hatasında hata ayıklarken önce her zaman 'exp' değerini kontrol edin — süresi dolmuş bir token en yaygın nedendir
- Algoritma uyuşmazlığı hatalarını yakalamak için header'daki 'alg' değerini backend'inizin beklediği değerle karşılaştırın
- Sunucu tarafında imzayı doğrulamadan çözülmüş bir payload'a kimlik kanıtı olarak asla güvenmeyin
- Bir token sızarsa maruziyeti sınırlamak için uzun ömürlü JWT'ler yerine yenileme token'larıyla birlikte kısa ömürlü token'lar kullanın
Kaçınılması Gereken Yaygın Hatalar
- Çözülmüş bir JWT'nin doğrulanmış bir JWT olduğunu varsaymak — çözme yalnızca içeriği okur, gerçekliğini doğrulamaz
- Payload'ın herkes tarafından okunabilir olduğunu unutup hassas verileri (şifreler, sırlar) payload içinde saklamak
- Üretim token'larını güvenilmeyen çevrimiçi çözücülere yapıştırmak
- Token ömrü sorunlarında hata ayıklarken 'exp' (son kullanma) ile 'iat' (verilme zamanı) arasında kafa karıştırmak
Anahtar Terimler Açıklandı
- Claim: Bir kullanıcı kimliği veya rol gibi bir konu hakkında iddia edilen bilgi parçası
- Header: İmzalama algoritmasını ve token türünü belirten ilk JWT bölümü
- Payload: Gerçek claim'leri içeren ikinci JWT bölümü
- Signature (İmza): Token'ın değiştirilmediğini doğrulamak için kullanılan üçüncü JWT bölümü
İlgili Kavramlar
- Hash oluşturucu:
- UUID oluşturucu:
- Base64 şifreleyici/çözücü:
- JSON biçimlendirici:
- Şifre gücü denetleyici:
Örnek
eyJhbGciOiJIUzI1NiJ9 ile başlayan bir token, {"alg":"HS256","typ":"JWT"} header'ına çözülür — bu da token'ın HMAC-SHA256 ile imzalandığını gösterir.
Sonuçlarınızı Yorumlama
Çözücü, JWT'yi iki nokta ayracından böler ve ilk iki bölümü Base64URL ile çözer. Başlık, imzalama algoritmasını (HS256 veya RS256 gibi) ve token türünü söyler. Yük, gerçek iddiaları içerir — kullanıcı kimliği, izinler ve zaman damgaları.
Zaman damgası iddiaları (exp, iat, nbf) otomatik olarak Unix zamanından okunabilir tarihlere dönüştürülür. 'exp' geçmiş bir tarih gösteriyorsa token süresi dolmuştur ve çoğu sunucu bunu reddeder. 'sub' (özne) iddiası genellikle kullanıcı kimliğini içerir ve 'iss' (veren), token'ı oluşturan sunucuyu tanımlar.
Unutmayın: çözme işlemi doğrulama değildir. İmza bölümü görüntülenir ancak gizli veya açık anahtar olmadan doğrulanamaz. Çözülmüş bir yük yalnızca bilgi amaçlıdır — sunucu tarafında imza doğrulaması yapılmadan bunu asla kimlik kanıtı olarak kabul etmeyin.

