Hesaplama Formülü
JWT = Base64URL(Header) . Base64URL(Payload) . Base64URL(Signature)
JSON Web Token üç parçadan oluşur. Header algoritma ve token tipini, Payload claim'leri (exp, iat, sub vb.), Signature ise imzayı içerir. Signature sunucu tarafında doğrulanır; bu araç yalnızca header ve payload'ı decode eder.
JWT'yi asla client'ta güvenlik için kullanmayın: JWT payload'ı yalnızca base64 kodludur, şifreli değildir. Hassas veriler (şifre, kredi kartı) payload'a koymayın — her kullanıcı bunu kolayca okuyabilir.
exp claim ve süre: exp Unix timestamp (saniye) olarak tutulur. Token süresini kısıtlamak (15 dk – 1 saat) güvenlik açısından kritiktir. Uzun ömürlü access token yerine refresh token pattern kullanın.
Sık Sorulan Sorular
JWT güvenli mi?+
JWT'nin güvenliği algoritma seçimine, imza doğrulamasına ve payload'a koyulan veriye bağlıdır. HS256/RS256 güçlü algoritmalar; 'alg: none' ise hiçbir zaman kabul edilmemelidir.
JWT ile session farkı nedir?+
Session sunucuda saklanır, JWT sunucusuz (stateless) çalışır. JWT ölçeklenebilirlik açısından avantajlıdır; ancak revoke etmek (token iptali) daha zordur.
Token süresi dolmuşsa ne olur?+
exp claim'i geçmiş bir JWT, doğru imzalı olsa bile reddedilmelidir. Client yeni token almak için refresh token kullanmalıdır.
RS256 vs HS256 hangisi tercih edilmeli?+
Mikroservis mimarilerinde RS256 (asimetrik) tercih edilir — public key ile doğrulama yapılır, secret paylaşımı gerekmez. Monolitik uygulamalarda HS256 yeterlidir.