JWT Nedir?
İngilizce: JSON Web Token
Yayın: · Son güncelleme:
JWT Nedir? Kısaca
JWT (JSON Web Token), iki sistem arasında kullanıcı kimliği ve yetkileri gibi bilgileri JSON biçiminde taşıyan, dijital olarak imzalandığı için içeriğinin değiştirilip değiştirilmediği anlaşılabilen kompakt bir belirteç standardıdır.

JWT nedir?
JWT, "JSON Web Token" ifadesinin kısaltmasıdır ve genellikle "cot" diye okunur. Web ve mobil uygulamalarda, kullanıcı giriş yaptıktan sonra sunucunun verdiği dijital bir giriş kartı gibi düşünülebilir. Uygulama her istekte bu kartı gösterir, sunucu da kartın geçerli olup olmadığını kontrol eder.
Bir JWT, noktalarla ayrılmış üç bölümden oluşur:
- Başlık: Belirtecin türü ve kullanılan imza algoritması.
- İçerik (payload): Kullanıcı kimliği, rol, son geçerlilik zamanı gibi bilgiler.
- İmza: İlk iki bölümün gizli bir anahtarla imzalanmış hâli.
Nasıl çalışır?
Kullanıcı giriş yaptığında sunucu bir JWT üretip uygulamaya verir. Uygulama sonraki isteklerde bu belirteci ekler. Sunucu imzayı doğrular; imza tutuyorsa içerikteki bilgilere güvenir ve ayrıca veri tabanına sormadan işlemi yapabilir.
Örneğin bir alışveriş uygulamasında JWT'nin içinde "kullanıcı: 1042, rol: müşteri, geçerlilik: 15 dakika" bilgisi bulunabilir. Biri içeriği "rol: yönetici" olarak değiştirmeye çalışırsa imza bozulur ve sunucu belirteci reddeder.
Güvenlik açısından nelere dikkat edilir?
JWT'nin içeriği şifreli değildir, yalnızca kodlanmıştır. Bu yüzden belirtecin içine şifre ya da kimlik numarası gibi hassas veriler konmamalıdır. Belirteci ele geçiren biri, geçerlilik süresi bitene kadar kullanıcı gibi davranabilir.
Geliştiriciler için temel kurallar şunlardır: kısa geçerlilik süreleri kullanmak, imzayı her istekte doğrulamak ve belirteçleri yalnızca HTTPS üzerinden taşımak. Bu belirteçler OpenID Connect gibi protokollerde kimlik bilgisini taşımak için de kullanılır.
Sıkça Sorulan Sorular
JWT şifreli midir?
Standart JWT şifreli değildir, yalnızca imzalıdır. İçerik herkes tarafından okunabilir ama değiştirilirse imza geçersiz olur; bu yüzden hassas bilgi JWT içine konmamalıdır.
JWT çalınırsa ne olur?
Belirteci ele geçiren kişi, geçerlilik süresi dolana kadar kullanıcı adına işlem yapabilir. Kısa süreli belirteçler ve HTTPS kullanımı bu riski azaltır.