Sobes.tech
Junior — Middle

Millised on JSON Web Token kasutamise peamised eelised ja puudused?

sobes.tech AI

Vastus AI-lt

JSON Web Token (JWT) eelised:

  • Sõltumatus: JWT sisaldab kogu vajalikku teavet autentimiseks ja autoriseerimiseks, mis võimaldab mitte hoida olekut serveris.
  • Skaleeritavus: tänu oleku puudumisele serveris on rakendusi lihtne skaleerida.
  • Lihtne edastada: JWT on kompaktne string, mida on mugav edastada HTTP päistes või URL-ides.
  • Turvalisus: JWT võib olla allkirjastatud (näiteks HMAC või RSA abil), mis tagab tokeni terviklikkuse ja autentsuse.

JWT puudused:

  • Tühistamise võimatus: pärast JWT väljastamist ei ole seda lihtne enne aegumist tühistada, välja arvatud juhul, kui on rakendatud täiendav mehhanism.
  • Tokeni suurus: JWT võib olla üsna suur, eriti kui see sisaldab palju andmeid, mis suurendab võrgu koormust.
  • Salvestamise turvalisus: kui token salvestatakse kliendi poolel (näiteks localStorage'is), võib see olla haavatav XSS rünnakute suhtes.
  • Uuendamise keerukus: andmete uuendamine tokeni sees nõuab uue tokeni väljastamist.

Näide JWT kasutamisest Node.js-is:

const jwt = require('jsonwebtoken');

// Tokeni loomine
const token = jwt.sign({ userId: 123 }, 'salajane_võti', { expiresIn: '1h' });

// Tokeni kontrollimine
try {
  const payload = jwt.verify(token, 'salajane_võti');
  console.log(payload.userId);
} catch (e) {
  console.error('Kehtetu või aegunud token');
}