JWT, JSON Web Token'ın kısaltmasıdır. Taraflar arasında bilgiyi JSON nesnesi olarak güvenle iletmek için kullanılan kompakt, URL güvenli bir token formatıdır. Bilgi dijital olarak imzalandığından doğrulanabilir ve güvenilir olur. JWT'ler en çok web ve mobil uygulamalarında kimlik doğrulama ve yetkilendirme için kullanılır.
Bir JWT token'ını incelemek veya çözümlemek mi istiyorsunuz?
JWT Çözücüyü Aç →JWT, IETF (İnternet Mühendisliği Görev Gücü) tarafından önerilmiş ve Mayıs 2015'te RFC 7519 olarak standartlaştırılmıştır. Daha geniş JSON Nesne İmzalama ve Şifreleme (JOSE) çerçevesinin bir parçası olarak geliştirilmiştir. JWT, birçok web bağlamında SAML token'ları gibi daha ağır XML tabanlı alternatiflerin yerini alarak REST API'leri ve tek sayfalık uygulamalar için baskın token formatı haline gelmiştir.
Bir JWT, nokta ile ayrılmış üç Base64URL kodlamalı bölümden oluşur: başlık.yük.imza
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFsaWNlIiwiaWF0IjoxNTE2MjM5MDIyfQ
.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Başlık, token türünü ve kullanılan imzalama algoritmasını belirtir:
{
"alg": "HS256",
"typ": "JWT"
}
Yük, claim'leri içerir — kullanıcı hakkındaki ifadeler ve ek meta veriler. Standart claim'ler:
sub — Konu (kullanıcı tanımlayıcısı)iat — Oluşturulma zamanı (Unix zaman damgası)exp — Son kullanma zamanı (Unix zaman damgası)iss — Yayıncı (token'ı kim oluşturdu)aud — Hedef kitle (amaçlanan alıcılar){
"sub": "1234567890",
"name": "Ali",
"role": "admin",
"iat": 1516239022,
"exp": 1516242622
}
İmza, kodlanmış başlık ve yük, gizli anahtarla (asimetrik algoritmalar için özel anahtar) imzalanarak oluşturulur. Token'ın kurcalanmadığını garanti eder:
HMACSHA256(
base64UrlEncode(başlık) + "." + base64UrlEncode(yük),
gizliAnahtar
)
localStorage'da)Authorization: Bearer <token> başlığında gönderirexp süresi belirleyin (15–60 dakika yaygındır) ve yenileme token'ları kullanınexp claim'ini doğrulayınalg: none algoritmasını asla kabul etmeyin — imza doğrulamasını tamamen devre dışı bırakırlocalStorage yerine bellekte veya httpOnly cookie'lerde saklayınJWT (JSON Web Token), taraflar arasında bilgiyi JSON nesnesi olarak güvenle iletmek için kullanılan kompakt, URL güvenli bir token formatıdır. Bilgi dijital olarak imzalanır; bu sayede doğrulanabilir ve güvenilir olur.
JWT, JSON Web Token'ın kısaltmasıdır. Taraflar arasında bilgiyi JSON nesnesi olarak iletmek için kompakt ve bağımsız bir yol tanımlayan açık bir standarttır (RFC 7519).
JWT en çok kimlik doğrulama ve yetkilendirme için kullanılır. Ayrıca mikro servis mimarilerinde servisler arasında bilgi alışverişi için de kullanılır.
Yük yalnızca Base64 ile kodlanmıştır, şifrelenmemiştir. İmza kurcalanmayı önler ancak gizlilik sağlamaz. JWT yüküne hassas veri koymayın ve her zaman HTTPS kullanın.
Oturum cookie'leri yalnızca bir oturum kimliği saklar; sunucu veritabanını sorgulamak zorundadır. JWT'ler bağımsızdır — tüm kullanıcı bilgisi token'ın içindedir, veritabanı sorgusu gerekmez. JWT'ler dağıtık sistemler için daha iyi ölçeklenir.
HS256, imzalama ve doğrulama için tek bir paylaşılan gizli anahtar kullanır. RS256, imzalamak için özel anahtar, doğrulamak için genel anahtar kullanır — doğrulayıcıların yeni token oluşturamaması gereken dağıtık sistemler için daha güvenlidir.