Araç hakkında
JWT nasıl oluşturulur?
JWT üç bölümden oluşur ve bölümler noktayla ayrılır: header.payload.signature. Araç, header’ı {"alg":"HS256","typ":"JWT"} olarak sabitler, header ve payload’u UTF-8 olarak Base64URL ile kodlar, ardından header.payload dizesini gizli anahtarla HMAC-SHA256 ile imzalar.
base64url(header) + "." + base64url(payload)
→ HMAC-SHA256(gizli_anahtar, yukarıdaki dize)
→ base64url(imza)Payload’a ne yazılmalı?
| Claim | Anlamı | Örnek |
|---|---|---|
sub | Token’ın ait olduğu kullanıcı veya varlık | "user_123" |
exp | Son geçerlilik zamanı (Unix saniye) | 1893456000 |
iat | Oluşturulma zamanı | 1767225600 |
nbf | Bu zamandan önce geçersiz | 1767225600 |
iss / aud | Token’ı veren ve kabul edecek taraf | "https://auth.example.com" / "api" |
Payload’u token’ı gören herkes okuyabilir. Parola, kişisel veri veya gizli anahtar yazmayın.
Anahtar uzunluğu
RFC 7518, HS256 için en az 256 bit (32 bayt) anahtar ister. Araç daha kısa anahtarları reddeder; çünkü kısa veya tahmin edilebilir anahtarlar, ele geçirilen tek bir token üzerinden çevrimdışı deneme ile bulunabilir. Anahtar üretmek için güvenli token oluşturucuyu kullanabilirsiniz.
Sık sorulan sorular
RS256 veya ES256 ile imzalayabilir miyim?
Bu araç yalnız HS256 (paylaşılan gizli anahtar) destekler. Asimetrik imza gerektiren durumlarda bir kütüphane ve özel anahtar kullanın.
Ürettiğim token’ı nasıl kontrol ederim?
JWT Çözücü içeriği gösterir, JWT Doğrulayıcı imzayı ve zaman claim’lerini denetler.