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');
}