Sobes.tech
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('Անվավեր կամ ժամկետանց տոմեն');
}