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 birJSON Web Tokenoluşturur. - Oluşturulan token istemciye gönderilir.
- İstemci her
request'te tokeni de gönderir, gönderilen token sunucuda doğrulanır.
JWT ve Cookie arasındaki fark nedir?
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 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
issexpgibi bazı keyler rezerve edilmiştir. Örneğinisskeyi token için expiration date belirlememizi sağlar. ) - Signature (Header, Payload ve
secretbelirlenen 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:
npm install jsonwebtokenProjemize import edelim.
import jwt from "jsonwebtoken";JWT Token oluşturmak için:
// jwt.sign(PAYLOAD, SECRET, OPTIONS);
const token = jwt.sign({ kullaniciAdi: "Furkan" }, "secretdegeri", {
expiresIn: "1d",
});JWT Tokeni doğrulamak için:
const result = jwt.verify(token, "secretdegeri");