Sobes.tech
Junior — Middle

Կարող եք կիսվել ձեր փորձով JSON Web Tokens- ի օգտագործման վերաբերյալ նախագծերում?

sobes.tech AI

Պատասխան AI-ից

PHP նախագծերում ես օգտագործել JWT (JSON Web Tokens)՝ օգտագործողների նույնականացման և թույլտվության իրականացման համար: JWT թույլ է տալիս գաղտնագրված ձևով փոխանցել օգտվողի մասին տեղեկատվություն հաճախորդից սերվեր՝ին առանց սերվերում սեսիայի պահպանումը:

JWT օգտագործելու հիմնական քայլերը՝

  1. Հաջող անցնելուց հետո, օգտվողը ստանում է JWT, որը պարունակում է բեռ (օրինակ՝ օգտվողի ID, դերեր):
  2. Թոքենը ստորագրվում է գաղտնի բանալով՝ կեղծիքից պաշտպանելու համար:
  3. Հաճախորդը պահում է թոքենը (օրինակ՝ localStorage-ում) և ուղարկում է այն Authorization գլխում հաջորդ հարցումներում:
  4. Սերվերը ստուգում է թոքենի ստորագրությունը և հանած տվյալներով որոշում է մուտքի իրավունքները:

Օրինակ՝ firebase/php-jwt գրադարանի միջոցով JWT ստեղծելու:

use Firebase\JWT\JWT;

$payload = [
    'iss' => 'your-domain.com',
    'iat' => time(),
    'exp' => time() + 3600, // գործողության ժամկետ՝ 1 ժամ
    'userId' => 123
];

$jwt = JWT::encode($payload, $secretKey, 'HS256');

// Վերահսկելու համար՝
$decoded = JWT::decode($jwt, $secretKey, ['HS256']);

JWT-ի օգտագործումը հեշտացնում է հավելվածների մասշտաբայնությունը, քանի որ այն չի պահանջում սերվերի վրա սեսիաների պահպանումը, բայց կարևոր է ճիշտ կարգավորել թոքենի գործողության ժամկետը և թարմացման գործընթացը։