JSON Web Token (JWT) est une norme ouverte (RFC 7519) utilisée pour transmettre des informations sur le réseau. JWT se compose de trois parties: en-tête, charge utile et signature. L'en-tête contient le type de jeton et l'algorithme de signature. La charge utile économise les données à transmettre et la signature est utilisée pour vérifier l'authenticité du jeton.
Pour utiliser JWT dans ThinkPhp6, vous devez d'abord le mettre en œuvre en introduisant le composant Think-JWT dans le fichier composer.json. Ajoutez "Think-jwt": "1.0. *" Au nœud requise du fichier, puis exécutez la commande de mise à jour du compositeur pour installer le composant.
Dans ThinkPhp6, JWT peut être généré via la classe JWT. Tout d'abord, vous devez créer un fichier de configuration JWT.php qui contient des éléments de configuration liés à JWT.
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 utilisez la méthode Créer pour générer le JWT.
Utilisez Think \ JWT \ JWT; classe 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 le JWT et renvoyez-le au client.
Dans ThinkPhp6, la validité de JWT peut être vérifiée via la méthode de vérification de la classe JWT.
Utilisez Think \ JWT \ JWT; classe 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, obtenez d'abord le JWT du client, puis appelez la méthode de vérification de vérification. Une fois la vérification passée, 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 les utiliser dans ThinkPhp6. L'utilisation de JWT pour l'authentification peut efficacement améliorer la sécurité de l'interface et empêcher un accès non autorisé. Dans le développement réel, les développeurs peuvent ajuster la configuration de JWT en fonction de leurs besoins pour répondre aux besoins de sécurité du projet.