Junior — Middle
Layihələrdə JSON Web Tokens istifadə təcrübənizi paylaşa bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
PHP layihələrində istifadəçi identifikasiyası və icazəsini həyata keçirmək üçün JSON Web Tokens (JWT) istifadə etmişəm. JWT, müştəri və server arasında istifadəçi haqqında məlumatları şifrələnmiş formada ötürməyə imkan verir və serverdə sessiya saxlamağa ehtiyac qalmır.
JWT istifadə etmənin əsas addımları:
- Uğurlu autentifikasiya sonrası istifadəçi JWT alır və bu, yükləmə (məsələn, istifadəçi ID-si, rollar) ehtiva edir.
- Token, saxtakarlığı önləmək üçün gizli açar ilə imzalanır.
- Müştəri tokeni (məsələn, localStorage-də) saxlayır və növbəti sorğularda Authorization başlığında göndərir.
- Server tokenin imzasını yoxlayır və giriş hüquqlarını müəyyən etmək üçün məlumatları çıxarır.
firebase/php-jwt kitabxanası ilə JWT yaradılması nümunəsi:
use Firebase\JWT\JWT;
$payload = [
'iss' => 'your-domain.com',
'iat' => time(),
'exp' => time() + 3600, // 1 saat müddətində
'userId' => 123
];
$jwt = JWT::encode($payload, $secretKey, 'HS256');
// Yoxlama üçün:
$decoded = JWT::decode($jwt, $secretKey, ['HS256']);
JWT istifadəsi tətbiqlərin miqyaslandırılmasını asanlaşdırır, çünki serverdə sessiyaların saxlanmasına ehtiyac yoxdur, lakin tokenin müddətini düzgün tənzimləmək və onun yenilənməsini idarə etmək vacibdir.