JWT (JSON Web Token) Nedir?

JWT Token Nedir?

JSON Web Token autharization işleminde kullanabileceğimiz bir standarttır. Kısaca şu şekilde çalışır;

  • Sunucu belirlediğiniz secret‘ı kullanarak bir JSON Web Token oluşturur.
  • Oluşturulan token istemciye gönderilir.
  • İstemci her request‘te tokeni de gönderir, gönderilen token sunucuda doğrulanır.

Cookie kullandığımızda istemciden gelen request üzerine server sessionu kaydeder. Sonrasındaki her requestte cookie de yollanır. Sunucu cookie’yi sunucuda arayarak doğrular.

JWT kullandığımızda ise istemciden gelen request üzerine server JWT token oluşturur. Sonrasındaki her requestte token de yollanır. Sunucu tokenin doğruluğunu kontrol eder. Aradaki fark token kullandığımızda servera herhangi bir bilgi yazmamıza gerek kalmamasıdır.

JWT Token ve Cookie

JWT token nasıl oluşturulur?

JWT tokenler nokta (.) ile birbirinden ayrılan 3 bölümden oluşur:

  • Header (Hash algoritmasının belirlendiği bölümdür.)
  • Payload (Verimizi eklediğimiz bölümdür.Burada iss exp gibi bazı keyler rezerve edilmiştir. Örneğin iss keyi token için expiration date belirlememizi sağlar. )
  • Signature (Header, Payload ve secret belirlenen algoritma ile kodlanarak signature elde edilir.)

JWT tokenleri oluşturmak ve doğrulamak için kullandığınız dil ve environment için bir library kullanabilirsiniz. jwt.io adresinden seçeneklere göz atabilirsiniz.

Örneğin Node.js için jsonwebtoken paketini kuralım:

1
npm install jsonwebtoken

Projemize import edelim.

1
import jwt from "jsonwebtoken";

JWT Token oluşturmak için:

1
2
3
4
// jwt.sign(PAYLOAD, SECRET, OPTIONS);
const token = jwt.sign({ kullaniciAdi: "Furkan" }, "secretdegeri", {
  expiresIn: "1d",
});

JWT Tokeni doğrulamak için:

1
const result = jwt.verify(token, "secretdegeri");
comments powered by Disqus
Hugo ile oluşturuldu.
Stack teması Jimmy tarafından tasarlandı