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:
- Po úspěšném ověření uživatele obdrží JWT, který obsahuje užitečná data (například ID uživatele, role).
- Token je podepsán tajným klíčem, aby se zabránilo padělání.
- Klient uloží token (například v localStorage) a posílá jej v hlavičce Authorization při následných požadavcích.
- 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.