Junior — Middle
Կարող եք կիսվել ձեր փորձով JSON Web Tokens- ի օգտագործման վերաբերյալ նախագծերում?
sobes.tech AI
Պատասխան AI-ից
PHP նախագծերում ես օգտագործել JWT (JSON Web Tokens)՝ օգտագործողների նույնականացման և թույլտվության իրականացման համար: JWT թույլ է տալիս գաղտնագրված ձևով փոխանցել օգտվողի մասին տեղեկատվություն հաճախորդից սերվեր՝ին առանց սերվերում սեսիայի պահպանումը:
JWT օգտագործելու հիմնական քայլերը՝
- Հաջող անցնելուց հետո, օգտվողը ստանում է JWT, որը պարունակում է բեռ (օրինակ՝ օգտվողի ID, դերեր):
- Թոքենը ստորագրվում է գաղտնի բանալով՝ կեղծիքից պաշտպանելու համար:
- Հաճախորդը պահում է թոքենը (օրինակ՝ localStorage-ում) և ուղարկում է այն Authorization գլխում հաջորդ հարցումներում:
- Սերվերը ստուգում է թոքենի ստորագրությունը և հանած տվյալներով որոշում է մուտքի իրավունքները:
Օրինակ՝ 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-ի օգտագործումը հեշտացնում է հավելվածների մասշտաբայնությունը, քանի որ այն չի պահանջում սերվերի վրա սեսիաների պահպանումը, բայց կարևոր է ճիշտ կարգավորել թոքենի գործողության ժամկետը և թարմացման գործընթացը։