JSON Web Token (JWT) est une norme ouverte (RFC 7519) utilisée pour transmettre en toute sécurité des informations sur le réseau. JWT se compose de trois parties: en-tête, charge utile et signature. L'en-tête contient généralement le type de jeton et l'algorithme de signature utilisé, la charge utile contient les données à transmettre et la signature est utilisée pour vérifier l'authenticité du jeton.
Dans ThinkPhp6, l'authentification JWT peut être mise en œuvre en introduisant le composant Think-JWT. Ajoutez simplement les dépendances correspondantes dans le fichier composer.json et installez-la.
{ "exiger": { "Think-jwt": "1.0. *" } }
Une fois l'installation terminée, vous pouvez effectuer l'authentification JWT via le code suivant:
Dans ThinkPhp6, JWT est généré via la classe JWT. Tout d'abord, vous devez créer un fichier de configuration `jwt.php` qui contient les éléments de configuration pertinents pour JWT. Ce fichier doit être situé dans le répertoire `config`.
Retour [ // clé de signature 'Secret' => 'my_secret', // Temps d'expiration, l'unité est des secondes, la valeur par défaut est de 1 heure 'expire' => 3600, ]]
Ensuite, introduisez la classe JWT dans le contrôleur et appelez la méthode «Create» pour générer le JWT.
Utilisez Think \ JWT \ JWT; Class UserController étend le contrôleur { Fonction publique Login () { // Vérifiez le nom d'utilisateur et le mot de passe ... // Générer JWT $ Payload = [ 'user_id' => $ user-> id ]] $ jwt = jwt :: create ($ upload); return ['token' => $ jwt]; } }
Dans le code ci-dessus, vérifiez d'abord le nom d'utilisateur et le mot de passe, et après vérification, générez un JWT et renvoyez-le au client.
Dans ThinkPhp6, la validité de JWT peut être vérifiée via la classe JWT. Présentez la classe JWT dans le contrôleur et appelez la méthode «Verify» de vérification.
Utilisez Think \ JWT \ JWT; Class UserController étend le contrôleur { Profil de la fonction publique () { // Vérifiez JWT $ jwt = input ('token'); $ Payload = JWT :: Verify ($ JWT); return ['user_id' => $ Payload ['user_id']]; } }
Dans le code ci-dessus, nous obtenons le JWT envoyé du client et appelons la méthode «Verify» de vérification. Une fois la vérification réussie, vous pouvez obtenir les données de charge utile dans le JWT.
Grâce à cet article, nous comprenons les concepts de base de JWT et comment utiliser JWT pour l'authentification dans ThinkPhp6. L'authentification JWT peut protéger efficacement la sécurité de l'interface et éviter un accès non autorisé. Les développeurs peuvent personnaliser les configurations en fonction des exigences du projet pour garantir la sécurité et la flexibilité du mécanisme d'authentification.