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 Token
oluş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
iss
exp
gibi bazı keyler rezerve edilmiştir. Örneğiniss
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:
|
|
Projemize import edelim.
|
|
JWT Token oluşturmak için:
|
|
JWT Tokeni doğrulamak için:
|
|