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