Sobes.tech
Junior — Middle

JSON Web Token istifadə etmənin əsas üstünlükləri və çatışmazlıqları hansılardır?

sobes.tech Süni İntellekt

AI-dan cavab

JSON Web Token (JWT) üstünlükləri:

  • Öz-özünə yetərlilik: JWT, autentifikasiya və icazə üçün lazım olan bütün məlumatları ehtiva edir, bu da serverdə vəziyyət saxlamağı tələb etmir.
  • Miqyaslana bilənlik: serverdə vəziyyətin olmaması sayəsində tətbiqləri asanlıqla miqyaslandırmaq mümkündür.
  • Asan ötürmə: JWT, HTTP başlıqlarında və ya URL-lərdə rahatlıqla ötürülən kompakt bir sətirdir.
  • Təhlükəsizlik: JWT imzalanabilir (məsələn, HMAC və ya RSA ilə), bu da tokenin bütövlüyünü və orijinallığını təmin edir.

JWT-nin çatışmazlıqları:

  • İmtina etmək imkanı yoxdur: JWT verildikdən sonra, tokeni onun müddəti bitməmiş ləğv etmək asan deyil, əlavə mexanizm tətbiq edilmədikcə.
  • Tokenin ölçüsü: JWT çox böyük ola bilər, xüsusən çox məlumat ehtiva edirsə, bu şəbəkə yükünü artırır.
  • Yadda saxlamanın təhlükəsizliyi: əgər token müştəri tərəfində (məsələn, localStorage-də) saxlanılırsa, XSS hücumlarına qarşı zəif ola bilər.
  • Yeniləmənin mürəkkəbliyi: token daxilindəki məlumatları yeniləmək üçün yeni token çıxarmaq lazımdır.

Node.js-də JWT istifadə nümunəsi:

const jwt = require('jsonwebtoken');

// Token yaradılması
const token = jwt.sign({ userId: 123 }, 'gizli_anahtar', { expiresIn: '1h' });

// Tokenin yoxlanması
try {
  const payload = jwt.verify(token, 'gizli_anahtar');
  console.log(payload.userId);
} catch (e) {
  console.error('Yanlış və ya vaxtı keçmiş token');
}