Junior — Middle
Môžete sa podeliť o svoje skúsenosti s používaním JSON Web Tokens v projektoch?
sobes.tech AI
Odpoveď od AI
V PHP projektoch som použil JSON Web Tokens (JWT) na implementáciu autentifikácie a autorizácie používateľov. JWT umožňuje prenášať informácie o používateľovi zašifrovaným spôsobom medzi klientom a serverom bez potreby uchovávať reláciu na serveri.
Hlavné kroky pri používaní JWT:
- Po úspešnej autentifikácii používateľ dostane JWT, ktorý obsahuje užitočné údaje (napríklad ID používateľa, roly).
- Token je podpísaný tajným kľúčom, aby sa zabránilo falšovaniu.
- Klient uloží token (napríklad v localStorage) a odosiela ho v hlavičke Authorization pri ďalších požiadavkách.
- Server overí podpis tokenu a extrahuje údaje na určenie prístupových práv.
Príklad vytvorenia JWT pomocou knižnice firebase/php-jwt:
use Firebase\JWT\JWT;
$payload = [
'iss' => 'your-domain.com',
'iat' => time(),
'exp' => time() + 3600, // platnosť 1 hodina
'userId' => 123
];
$jwt = JWT::encode($payload, $secretKey, 'HS256');
// Na overenie:
$decoded = JWT::decode($jwt, $secretKey, ['HS256']);
Použitie JWT uľahčuje škálovanie aplikácií, pretože nevyžaduje ukladanie relácií na serveri, ale je dôležité správne nastaviť dobu platnosti tokenu a správu jeho aktualizácie.