Maison  >  Article  >  développement back-end  >  Comment implémenter l'authentification et l'autorisation dans les applications PHP à l'aide de JWT

Comment implémenter l'authentification et l'autorisation dans les applications PHP à l'aide de JWT

王林
王林original
2023-08-03 22:17:071160parcourir

Comment utiliser JWT pour implémenter l'authentification et l'autorisation dans les applications PHP

Introduction :
Avec le développement rapide d'Internet, l'authentification et l'autorisation deviennent de plus en plus importantes dans les applications Web. JSON Web Token (JWT) est un mécanisme d'authentification et d'autorisation populaire largement utilisé dans les applications PHP. Cet article expliquera comment utiliser JWT pour implémenter l'authentification et l'autorisation dans les applications PHP, et fournira des exemples de code pour aider les lecteurs à mieux comprendre l'utilisation de JWT.

1. Introduction à JWT
JSON Web Token (JWT) est une norme ouverte (RFC 7519) qui définit un moyen compact et autonome de transmettre des informations entre les parties, transmises de manière sécurisée en tant qu'objet JSON. Ces informations peuvent être vérifiées et fiables car elles sont signées numériquement.
JWT se compose de trois parties : en-tête, charge utile et signature. L'en-tête contient généralement des informations sur l'algorithme et le type de jeton ; la charge utile contient des informations de réclamation sur l'utilisateur ou une autre entité ; la signature est utilisée pour vérifier l'authenticité et l'intégrité du jeton ;

2. Flux de travail JWT
1. Connexion utilisateur
Les utilisateurs se connectent à l'application en utilisant leur nom d'utilisateur et leur mot de passe. Le serveur vérifie l'identité de l'utilisateur et génère un jeton JWT.

2. Génération et envoi de jetons
Le serveur signe le JWT à l'aide de la clé privée, génère le jeton et l'envoie au client dans le cadre de la réponse.

3. Jeton de stockage client
Une fois que le client a reçu le jeton JWT, il le stocke localement pour une utilisation dans les requêtes ultérieures.

4. Apportez le jeton lors de la demande
Le client enverra le jeton JWT au serveur dans le cadre de l'en-tête d'autorisation dans chaque demande.

5. Jeton de vérification du serveur
Après avoir reçu la demande, le serveur utilise la clé publique pour vérifier l'authenticité et l'intégrité du JWT.

6. Traitement de l'autorisation et de la logique métier
Une fois la vérification du serveur réussie, les informations de charge utile JWT sont utilisées pour l'authentification et l'autorisation, puis la logique métier correspondante est exécutée.

3. Utilisez JWT pour implémenter des exemples de codes d'authentification et d'autorisation

1. Générer JWT (jeton)

use FirebaseJWTJWT;

$privateKey = "your_private_key";

$token = array(
    "iss" => "your_iss", //签发者
    "aud" => "your_aud", //接收方
    "iat" => time(), //签发时间
    "exp" => time() + 3600 //过期时间
);

$jwt = JWT::encode($token, $privateKey, 'HS256');

2 Vérifier JWT (jeton)

use FirebaseJWTJWT;

$publicKey = "your_public_key";

$jwt = $_SERVER['HTTP_AUTHORIZATION']; // 获取Authorization头部的令牌

try {
    $decoded = JWT::decode($jwt, $publicKey, array('HS256'));
    
    // 身份验证成功,执行相应的业务逻辑
    // ...
    
} catch (Exception $e) {
    // 验证失败,返回错误提示
    // ...
}

4.Résumé
Cet article présente brièvement JWT dans les applications PHP. d'authentification et d'autorisation, et fournit des exemples de codes correspondants. En tant que mécanisme d'authentification et d'autorisation fiable, JWT est largement utilisé dans le développement Web moderne. En utilisant JWT de manière appropriée, nous pouvons améliorer la sécurité et la fiabilité de nos applications. J'espère que les lecteurs pourront tirer des connaissances et une inspiration utiles de cet article et maîtriser davantage l'utilisation de JWT dans les applications PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn