Junior — Middle
Koje su glavne prednosti i mane korišćenja JSON Web Token za autentifikaciju i autorizaciju?
sobes.tech АИ
Одговор од АИ
Предности JSON Web Token (JWT):
- Самодостатност: JWT садржи све потребне информације за аутентификацију и овлашћење, што омогућава да се не чува стање на серверу.
- Масовност: захваљујући одсуству стања на серверу, лако је скалирати апликације.
- Лако преносиво: JWT је компактна низа која се удобно преноси у HTTP заглављима или URL-овима.
- Безбедност: JWT може бити потписан (нпр. помоћу HMAC или RSA), што гарантује интегритет и аутентичност токена.
Недостаци JWT:
- Немогућност повлачења: након издавања, није лако повући токен пре истека, осим ако се не имплементира додатни механизам.
- Величина токена: JWT може бити прилично велики, посебно ако садржи много података, што повећава оптерећење мреже.
- Безбедност складиштења: ако се токен чува на клијенту (нпр. у localStorage), може бити подложан XSS нападима.
- Компликованост ажурирања: ажурирање података унутар токена захтева издавање новог токена.
Пример коришћења JWT у Node.js:
const jwt = require('jsonwebtoken');
// Креирање токена
const token = jwt.sign({ userId: 123 }, 'тајни_кључ', { expiresIn: '1h' });
// Провера токена
try {
const payload = jwt.verify(token, 'тајни_кључ');
console.log(payload.userId);
} catch (e) {
console.error('Невалидан или истекао токен');
}