Hesaplama Formülü
JWT = Base64URL(Header) . Base64URL(Payload) . HMAC-SHA256(Header.Payload, Secret)
HMAC imzalı JWT'de header ve payload Base64URL kodlanır, nokta ile birleştirilir. Bu birleşim secret ile HMAC hesaplanır; sonuç üçüncü parça olan signature'dır. Tüm işlem tarayıcıda gerçekleşir.
Örnek: HS256 ile 1 saatlik token: header {alg:HS256,typ:JWT} + payload {sub:123,exp:+3600} → 3 parçalı imzalı JWT string.
Secret'ı asla client'a göndermeyın: HS256 secret'ı ele geçiren herkes istediği payload ile geçerli token üretebilir. Secret yalnızca sunucu tarafında tutulmalı; frontend koduna, git deposuna veya log dosyasına kesinlikle girmemeli.
Kısa ömürlü access token + refresh token pattern kullanın: 15–60 dakikalık access token, ele geçirilirse hasarı sınırlar. Uzun oturumlar için refresh token ile yenileme mekanizması güvenli standart yaklaşımdır.
Sık Sorulan Sorular
JWT nedir?+
JSON Web Token (JWT), taraflar arasında güvenli bilgi aktarımını sağlayan açık bir standarttır (RFC 7519). Header, Payload ve Signature olmak üzere üç bölümden oluşur.
HMAC ile RSA arasındaki fark nedir?+
HMAC (HS256/384/512) simetrik anahtardır — imzalama ve doğrulama aynı secret ile yapılır. RSA (RS256) asimetrik çiftle çalışır: özel anahtar imzalar, genel anahtar doğrular.
exp claim nedir?+
exp (expiration time) token'ın geçerlilik bitiş zamanını Unix timestamp olarak belirtir. Bu tarihten sonra sunucu token'ı geçersiz saymalıdır.
JWT payload şifreli mi?+
Hayır. JWT payload yalnızca Base64URL kodludur; herkes decode edebilir. Hassas veri (şifre, kart bilgisi) kesinlikle payload'a konulmamalıdır.