Sobes.tech
Junior — Middle

Aké sú hlavné výhody a nevýhody používania JSON Web Token pre overovanie a autorizáciu?

sobes.tech AI

Odpoveď od AI

Výhody JSON Web Token (JWT):

  • Samostatnosť: JWT obsahuje všetky potrebné informácie na autentifikáciu a autorizáciu, čo umožňuje neukladanie stavu na serveri.
  • Škálovateľnosť: vďaka absencii stavu na serveri je ľahké škálovať aplikácie.
  • Jednoduchý prenos: JWT je kompaktný reťazec, ktorý je vhodný na prenos v HTTP hlavičkach alebo URL.
  • Bezpečnosť: JWT môže byť podpísaný (napríklad pomocou HMAC alebo RSA), čo zaručuje integritu a pravosť tokenu.

Nevýhody JWT:

  • Nemožnosť odvolania: po vydaní JWT nie je ľahké token odvolať pred jeho vypršaním, ak nie je implementovaný dodatočný mechanizmus.
  • Veľkosť tokenu: JWT môže byť dosť veľký, najmä ak obsahuje veľa dát, čo zvyšuje záťaž siete.
  • Bezpečnosť uloženia: ak je token uložený na klientovi (napríklad v localStorage), môže byť náchylný na XSS útoky.
  • Zložitosť aktualizácie: aktualizácia dát vnútri tokenu vyžaduje vydanie nového tokenu.

Príklad použitia JWT v Node.js:

const jwt = require('jsonwebtoken');

// Vytvorenie tokenu
const token = jwt.sign({ userId: 123 }, 'tajny_klic', { expiresIn: '1h' });

// Overenie tokenu
try {
  const payload = jwt.verify(token, 'tajny_klic');
  console.log(payload.userId);
} catch (e) {
  console.error('Neplatný alebo expirovaný token');
}