JWT (JSON Web Token) est une norme ouverte largement utilisée dans l'authentification de l'identité et l'échange d'informations. Il se compose de trois parties: en-tête, charge utile et signature. JWT peut être utilisé pour transmettre en toute sécurité les données d'identité de l'utilisateur entre le client et le serveur.
Il est très simple d'intégrer les fonctions JWT dans PHP, et il est recommandé d'utiliser la bibliothèque PHP officielle fournie par Firebase JWT . Installez la bibliothèque via le compositeur:
composer require firebase/php-jwt
Ce qui suit est le moyen standard de générer des JWT, y compris les informations d'identité de base de l'utilisateur:
<?php
require_once 'vendor/autoload.php';
use Firebase\JWT\JWT;
// Définir la clé
$key = "Clé";
// Créer une charge de données utilisateur
$payload = array(
"iss" => "example.org",
"sub" => "user_id",
"name" => "John Doe"
);
// générer JWT
$jwt = JWT::encode($payload, $key);
echo $jwt;
?>
Dans ce code, nous présentons la bibliothèque JWT Firebase et utilisons la méthode JWT :: Encode () pour générer une chaîne JWT contenant des informations utilisateur.
Lorsqu'un utilisateur demande, il est nécessaire de vérifier que le JWT qu'il fournit est valide. Ce qui suit est l'exemple de vérification du code:
<?php
require_once 'vendor/autoload.php';
use Firebase\JWT\JWT;
// Supposer que celui reçu JWT
$jwt = "JWT";
// Clé(需与générer时一致)
$key = "Clé";
try {
// Vérifier et décoder JWT
$decoded = JWT::decode($jwt, $key, array('HS256'));
// Sortie d'informations utilisateur décodées
echo "utilisateurID: " . $decoded->sub . "<br>";
echo "utilisateur名: " . $decoded->name . "<br>";
} catch (Exception $e) {
echo 'Échec de la vérification:' . $e->getMessage();
}
?>
Dans ce code, nous recevons le JWT passé par le client, effectuons une vérification de signature via la touche spécifiée et extrait les informations utilisateur à l'aide de la méthode JWT :: Decode () . Si le jeton n'est pas valide, une exception est lancée et un message d'erreur est sorti.
L'utilisation de JWT permet aux applications PHP d'authentifier et de transférer des données plus solides. Avec la bibliothèque Firebase JWT PHP, les développeurs peuvent rapidement intégrer les mécanismes d'authentification de la sécurité basés sur des jetons pour obtenir une gestion des autorisations légères et efficaces.