JWT (JSON Web Token) Nedir?

JWT; HTTP gibi güvenli olmayan bağlantılar üzerinden JSON verileri aktarımını güvenli bir şekilde yapabilmemizi sağlayan bir standarttır. (RFC 7519).

Örnek kullanım olarak; üyelik bilgileri içeren bir token oluşturarak bunu sunucu ve tarayıcı arasında güvenli bir şekilde transfer edebilir ve üye giriş kontrolü yapabilirsiniz.

3 parçadan oluşur.

Header; tip(typ) ve algoritma(alg) verilerini tutan küçük bir JSON nesnesidir.

{
  "alg": "HS256",
  "typ": "JWT"
}

Payload; içerisinde önceden tanımlı(reserved claims) ve bizim keyfi olarak tanımlayabileceğimiz(public claims) değerler bulunduran bir JSON nesnesidir.

{
  "sub": "1234567890",
  "name": "John Doe",
  "admin": true
}

Verify Signature; base64UrlEncode ile şifrelenip birleştirilmiş Header ve Payload nesnelerinin bir anahtar(secret) ile şifrelenmesi ile oluşturulur. Bu anahtar alıcıda da bulunur, gelen verinin doğruluğu bu şekilde kontrol edilir.

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret
) 

Tokenin bitmiş hali şu şekilde birbirinden nokta ile ayrılmış 3 bölümden oluşur

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

XML’deki benzer işlemi yapan standartlara karşı avantajları;
Daha sıkıştırılmış olması ve veri transferinden kar elde ettirmesi.
Daha hızlı bir şekilde şifrelenebilmesi.
Veri şekline dönüştürmenin daha hızlı olması.

Daha fazla bilgi: https://jwt.io/introduction/

Bir Cevap Yazın