Sobes.tech
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:

  1. Po úspešnej autentifikácii používateľ dostane JWT, ktorý obsahuje užitočné údaje (napríklad ID používateľa, roly).
  2. Token je podpísaný tajným kľúčom, aby sa zabránilo falšovaniu.
  3. Klient uloží token (napríklad v localStorage) a odosiela ho v hlavičke Authorization pri ďalších požiadavkách.
  4. 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.