🔑 JWT Decoder
Decode and inspect JWT tokens instantly — view header, payload, and signature. Verify signatures with your secret. Free online JWT decoder — nothing sent to any server.
How to Use
Paste your JWT
Copy your JWT token (starting with eyJ) and paste it into the input field.
Click Decode
Press Decode to instantly split and decode all three parts: header, payload, and signature.
Inspect the token
Read the decoded JSON, check expiration dates, algorithm, and any custom claims in the payload.
Frequently Asked Questions
Tam Rehber: JWT Decoder
JWT Nedir ve Neden Önemlidir?
JSON Web Token (JWT), RFC 7519'da standartlaştırılmış, durumsuz kimlik doğrulama için tasarlanmış kompakt bir token formatıdır. Tek sayfalı uygulamalarda, mobil API'lerde ve mikro servis mimarilerinde baskın kimlik doğrulama mekanizmasıdır çünkü sunucu tarafında oturum deposuna ihtiyaç duymaz.
JWT, nokta ile ayrılmış üç Base64url kodlu bölüme sahiptir: header.payload.signature. Header algoritmayı belirtir. Payload, kullanıcı kimliği ve izinler gibi iddiaları içerir. Signature, token'ın değiştirilmediğini kanıtlayan kriptografik imzadır.
Kritik ayrım: decode etmek doğrulama değildir. Herkes JWT'nin header ve payload bölümlerini okuyabilir — yalnızca Base64url kodludur, şifreli değildir. İmza doğrulaması (sunucu tarafında) özgünlüğü kanıtlar.
Nasıl Kullanılır?
- JWT'nizi yapıştırın (eyJ… ile başlayan dize).
- Decode'a tıklayın — üç bölüm ayrıştırılır.
- Header'ı okuyun — algoritmayı kontrol edin (
alg). - Payload'ı okuyun —
exp(süresi dolmuş mu?),iss, özel iddialar.
Kod Örnekleri
// Kütüphanesiz decode (istemci tarafı, doğrulama olmadan)
function jwtDecode(token) {
const [h, p] = token.split('.');
const coz = (b64url) => JSON.parse(
atob(b64url.replace(/-/g, '+').replace(/_/g, '/'))
);
return { header: coz(h), payload: coz(p) };
}
// Node.js: 'jose' kütüphanesiyle doğrulama (önerilen)
import { jwtVerify } from 'jose';
const gizli = new TextEncoder().encode('256-bit-gizli');
const { payload } = await jwtVerify(token, gizli, {
issuer: 'https://auth.example.com',
audience: 'https://api.example.com',
});
// Sona erme kontrolü
const surelidiMi = (p) => Date.now() >= p.exp * 1000;
Yaygın Hatalar
- JWT'yi localStorage'da saklamak — XSS saldırılarına karşı savunmasız. Hassas izinler için
httpOnlycookie kullanın. - "alg: none" saldırısı — Sunucu tarafında her zaman izin verilen algoritmaları açıkça belirtin ve
none'ı reddein. - Uzun ömürlü erişim token'ları — Erişim token'ı 15 dakika ila bir saat süreli olmalı. Yenileme için refresh token kullanın.
- Hassas veri payload'da saklamak — Payload yalnızca Base64url kodludur, şifreli değildir — herkes okuyabilir.
issveaudiddialarını doğrulamamak — Her zaman token'ın doğru kaynak ve hedef için olduğunu doğrulayın.
İpuçları
- Sona erme zamanı:
expUnix zaman damgasıdır.new Date(payload.exp * 1000)ile insan tarafından okunabilir biçime dönüştürün. - Refresh token rotasyonu: Her kullanımda yeni refresh token düzenleyin ve eskiyi geçersiz kılın — token hırsızlığını algılar.
- JWT'leri küçük tutun: Her kimlik doğrulanmış istek tam JWT'yi header'da gönderir. Payload'ı yalnızca temel iddialarla sınırlı tutun.