Sobes.tech
Junior — Middle

Můžete sdílet své zkušenosti s používáním JSON Web Tokens v projektech?

sobes.tech AI

Odpověď od AI

V projektech v PHP jsem používal JSON Web Tokens (JWT) k implementaci autentizace a autorizace uživatelů. JWT umožňuje přenášet informace o uživateli zašifrovaným způsobem mezi klientem a serverem bez nutnosti uchovávání relace na serveru.

Hlavní kroky použití JWT:

  1. Po úspěšném ověření uživatele obdrží JWT, který obsahuje užitečná data (například ID uživatele, role).
  2. Token je podepsán tajným klíčem, aby se zabránilo padělání.
  3. Klient uloží token (například v localStorage) a posílá jej v hlavičce Authorization při následných požadavcích.
  4. Server ověří podpis tokenu a extrahuje data pro určení přístupových práv.

Příklad tvorby JWT pomocí knihovny firebase/php-jwt:

use Firebase\JWT\JWT;

$payload = [
    'iss' => 'your-domain.com',
    'iat' => time(),
    'exp' => time() + 3600, // platnost 1 hodina
    'userId' => 123
];

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

// Pro ověření:
$decoded = JWT::decode($jwt, $secretKey, ['HS256']);

Použití JWT usnadňuje škálování aplikací, protože nevyžaduje ukládání relací na serveru, ale je důležité správně nastavit dobu platnosti tokenu a správu jeho aktualizace.