Maison  >  Article  >  développement back-end  >  Comment utiliser l'authentification OAuth en PHP

Comment utiliser l'authentification OAuth en PHP

PHPz
PHPzoriginal
2023-06-22 08:30:06902parcourir

Le protocole d'authentification OAuth est devenu de plus en plus populaire ces dernières années, alors que de plus en plus d'applications commencent à prendre en charge les connexions tierces. La mise en œuvre d'OAuth permet aux applications tierces d'obtenir l'autorisation de l'utilisateur auprès d'autres applications sans connaître le mot de passe de l'utilisateur. PHP, en tant que langage de programmation côté serveur largement utilisé, prend également en charge l'authentification OAuth. Cet article vous expliquera comment utiliser la bibliothèque OAuth de PHP pour implémenter l'authentification OAuth.

Qu'est-ce qu'OAuth ?

OAuth est un protocole standard d'autorisation. C'est un protocole ouvert et sécurisé qui permet à une application d'accéder à l'API ou aux données d'une autre application avec l'autorisation de l'utilisateur sans révéler le mot de passe. Il est principalement utilisé pour permettre à l'utilisateur d'autoriser une application tierce à accéder aux données utilisateur d'une autre application sans fournir le nom d'utilisateur et le mot de passe à l'application tierce.

Processus de base de l'authentification OAuth :

Le processus d'autorisation OAuth 2.0 est un processus basé sur un accès autorisé. Son processus de base est le suivant :

  1. L'utilisateur demande l'accès aux ressources depuis l'application client.
  2. L'application client redirige l'utilisateur vers le serveur d'authentification pour lui fournir les informations d'authentification utilisateur nécessaires.
  3. Le serveur d'authentification demande à l'utilisateur s'il doit autoriser l'application cliente à accéder aux ressources de l'utilisateur.
  4. Avec l'autorisation de l'utilisateur, le serveur d'authentification émet un jeton d'accès (jeton d'accès) à l'application client.
  5. L'application client fournit le jeton d'accès au serveur de ressources.
  6. Le serveur de ressources valide le jeton d'accès ; si le jeton d'accès est valide, fournit la ressource demandée à l'application client.

Utilisez la bibliothèque OAuth de PHP pour implémenter l'authentification OAuth

Tout d'abord, vous devez comprendre les concepts de base et l'utilisation de la bibliothèque d'extension PHP OAuth. La bibliothèque d'extension OAuth fournit OAuth Une implémentation simple du protocole, qui utilise les spécifications OAuth versions 1.0a et 2.0. La bibliothèque d'extension PHP OAuth doit être installée sur votre serveur. PHP OAuth et OAuth 2.0 ne sont pas la même chose, vous devez donc installer deux versions différentes de la bibliothèque.

Voici les étapes pour implémenter l'authentification OAuth en PHP à l'aide de la bibliothèque OAuth :

Étape 1 : Installez la bibliothèque d'extension PHP OAuth

Tout d'abord, vous avez besoin de vérifier si la bibliothèque d'extension PHP OAuth est installée sur votre serveur. S'il est déjà installé, ignorez cette étape. S'il n'est pas installé, veuillez suivre les étapes ci-dessous pour l'installer :

  1. Installez directement à l'aide de la commande (autorisations root requises) :

    sudo apt-get install php-oauth

  2. Si vous souhaitez l'installer manuellement, veuillez suivre ces étapes :

    1. Télécharger la dernière version de la bibliothèque d'extensions PHP OAuth.
    2. Décompressez le fichier téléchargé et entrez dans le répertoire décompressé.
    3. Exécutez la commande suivante :

      phpize

    4. Configuration :

      #🎜 🎜 #./configure

    5. Compiler et installer :

      make && sudo make install

    6. # 🎜🎜#
  3. Étape 2 : Préparez les informations d'application pour OAuth

Pour utiliser l'authentification OAuth, vous devez enregistrer votre application auprès du fournisseur OAuth et obtenir vos informations d'identification. Chaque fournisseur OAuth a son processus d'enregistrement de candidature spécifique et vous devez suivre ses conseils pour terminer le processus d'enregistrement. Après vous être inscrit avec succès et obtenu vos informations d'identification, vous obtiendrez les informations suivantes :

ClientID
  1. ClientKey
  2. #🎜 🎜#Authorization Scope# 🎜🎜#
  3. Authorization Endpoint
  4. Token Endpoint
  5. Étape 3 : Connectez-vous au fournisseur OAuth à l'aide des informations d'identification OAuth# 🎜🎜#
  6. Pour vous connecter et demander l'autorisation d'un fournisseur OAuth, suivez ces étapes :

Créez un objet OAuth :

#🎜 🎜#$oauth = new OAuth(

 'your client id',   //客户端ID
 'your client secret',   //客户端密钥
 OAUTH_SIG_METHOD_HMACSHA1,  //签名方法
 OAUTH_AUTH_TYPE_AUTHORIZATION //认证类型
    );
  1. Définissez les points de terminaison d'autorisation et de jeton pour le fournisseur OAuth : #🎜🎜 #

    $oauth-> ;setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);

    $oauth->setRequestTokenUrl('https://provider.com/oauth/request_token');

    $oauth-> setAccessTokenUrl('https://provider. com/oauth/access_token');
  2. $oauth->setAuthUrl('https://provider.com/oauth/authorize');
  3. #🎜🎜 #

    Obtenir le jeton de demande :


    $oauth->getRequestToken('https://provider.com/oauth/request_token', 'callback url');# 🎜🎜#
    #🎜🎜 #
    Étape 4 : Utilisez le jeton d'autorisation OAuth

  4. Après avoir obtenu le jeton de demande, vous devez utiliser le jeton d'autorisation pour accéder aux ressources Protect du destinataire du fournisseur OAuth. Pour utiliser un jeton d'autorisation, vous devez l'envoyer au fournisseur OAuth et demander un jeton d'accès. Après avoir obtenu le jeton d'accès, vous pouvez accéder à la ressource qui appelle l'API protégée.
  5. L'exemple de code suivant montre comment utiliser un jeton d'autorisation pour accéder à une API protégée.

  6. Créer un objet OAuth :

$oauth = new OAuth(

 'your client id',   //客户端ID
 'your client secret',   //客户端密钥
 OAUTH_SIG_METHOD_HMACSHA1,  //签名方法
 OAUTH_AUTH_TYPE_AUTHORIZATION //认证类型

);

# 🎜🎜#

Définissez les points de terminaison d'autorisation et de jeton pour le fournisseur OAuth :
  1. $oauth->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);

    $oauth-> setRequestTokenUrl ('https://provider.com/oauth/request_token');

    $oauth->setAccessTokenUrl('https://provider.com/oauth/access_token');

    $oauth- > ;setAuthUrl('https://provider.com/oauth/authorize');

  2. Obtenir le jeton d'autorisation :
  3. $oauth -> ;setToken('votre jeton d'accès', 'votre jeton d'accès secret');



    Accès API protégé :

    $ oauth-> fetch('https://provider.com/api/resource');
  4. Résumé

    L'authentification OAuth est une norme d'autorisation populaire qui permet aux applications de demander en toute sécurité des données utilisateur à d'autres applications sans révéler de mots de passe. La bibliothèque d'extensions PHP OAuth fournit une implémentation directe du protocole OAuth, nous pouvons donc facilement implémenter l'authentification OAuth en PHP. En utilisant l'authentification OAuth, nous pouvons garantir que les données de l'utilisateur sont sécurisées et ne sont pas sujettes à des abus.

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