Junior — Middle
Ի՞նչ են JSON Web Token- ի կիրառման հիմնական առավելությունները և թերությունները:
sobes.tech AI
Պատասխան AI-ից
JSON Web Token (JWT) օգուտները:
- Ինքնաբավ: JWT պարունակում է բոլոր անհրաժեշտ տեղեկությունները հաստատման և թույլտվության համար, ինչը թույլ է տալիս չպահել վիճակ սերվերում:
- Մասշտաբայնություն: սերվերի վիճակի բացակայության պատճառով հեշտ է ընդլայնել հավելվածները:
- Հեշտ փոխանցում: JWT-ը կոմպակտ տող է, որը հարմար է փոխանցելու HTTP գլխարկներում կամ URL-երում:
- Անվտանգություն: JWT-ը կարող է ստորագրվել (օրինակ, HMAC կամ RSA-ի միջոցով), ինչը երաշխավորում է տոմենի ամբողջականությունը և իսկությունը:
JWT-ի թերությունները:
- Չի կարելի վերականգնել: JWT-ն թողարկելուց հետո, այն հեշտ չէ վերականգնել մինչև ժամկետի ավարտը, եթե չիրականացվի լրացուցիչ մեխանիզմ:
- Տոմենի չափը: JWT-ը կարող է բավականին մեծ լինել, հատկապես եթե պարունակում է շատ տվյալներ, ինչը մեծացնում է ցանցի բեռը:
- Անվտանգության ռիսկեր պահեստավորման ժամանակ: եթե տոմենը պահվում է հաճախորդի կողմից (օրինակ, localStorage-ում), այն կարող է լինել vulnատու XSS հարձակումների համար:
- Թարմացման բարդություն: տվյալների թարմացումը տոմենում պահանջում է նոր տոմեն թողարկել:
Node.js-ում JWT-ի օգտագործման օրինակ:
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('Անվավեր կամ ժամկետանց տոմեն');
}