Junior — Middle
Kunt u uw ervaring met het gebruik van JSON Web Tokens in projecten delen?
sobes.tech AI
Antwoord van AI
In PHP-projecten heb ik JSON Web Tokens (JWT) gebruikt om authenticatie en autorisatie van gebruikers te implementeren. JWT maakt het mogelijk om informatie over de gebruiker versleuteld tussen de client en de server te verzenden zonder dat er een sessie op de server hoeft te worden opgeslagen.
Belangrijke stappen bij het gebruik van JWT:
- Na succesvolle authenticatie ontvangt de gebruiker een JWT die de payload bevat (bijvoorbeeld gebruikers-ID, rollen).
- Het token wordt ondertekend met een geheime sleutel om vervalsing te voorkomen.
- De client slaat het token op (bijvoorbeeld in localStorage) en stuurt het in de Authorization-header bij volgende verzoeken.
- De server verifieert de handtekening van het token en haalt de gegevens op om de toegangsrechten te bepalen.
Voorbeeld van het maken van een JWT met behulp van de bibliotheek firebase/php-jwt:
use Firebase\JWT\JWT;
$payload = [
'iss' => 'your-domain.com',
'iat' => time(),
'exp' => time() + 3600, // geldigheidstermijn 1 uur
'userId' => 123
];
$jwt = JWT::encode($payload, $secretKey, 'HS256');
// Ter verificatie:
$decoded = JWT::decode($jwt, $secretKey, ['HS256']);
Het gebruik van JWT vereenvoudigt het schalen van applicaties, omdat het geen sessies op de server vereist, maar het is belangrijk om de geldigheidsduur van het token correct in te stellen en het bijwerken ervan te beheren.