Maison > développement back-end > tutoriel php > Un article explique comment installer l'extension oauth2 en php7

Un article explique comment installer l'extension oauth2 en php7

PHPz
Libérer: 2023-04-11 12:14:02
original
1987 Les gens l'ont consulté

PHP7 est un langage de programmation efficace qui a toujours été un choix populaire dans le domaine du développement Web. Le protocole OAuth2 est un standard ouvert d'authentification et d'autorisation, utilisé pour protéger la sécurité des applications Web et la confidentialité des utilisateurs. Voyons maintenant comment installer l'extension OAuth2 dans PHP7 afin de pouvoir utiliser ce protocole dans le développement Web.

  1. Installer l'extension OAuth2

Pour installer l'extension OAuth2 en PHP7, nous devons utiliser la commande pecl. Exécutez la commande suivante dans le terminal :

pecl install oauth-2.0.4
Copier après la connexion

Si pecl n'est pas installé sur votre système, vous pouvez utiliser la commande suivante pour l'installer :

sudo apt-get install php-pear
Copier après la connexion
  1. Configurez le fichier PHP.ini

Après l'installation, nous avons besoin pour configurer le fichier PHP.ini Ajoutez l'extension OAuth2 au fichier. Exécutez la commande suivante dans le terminal pour trouver le chemin de votre fichier php.ini :

php --ini
Copier après la connexion

Ouvrez le fichier php.ini trouvé et ajoutez le code suivant à la fin :

extension=oauth.so
Copier après la connexion

Enregistrez le fichier et redémarrez le service PHP-FPM :

sudo systemctl restart php7-fpm
Copier après la connexion

Maintenant, l'extension OAuth2 a été installée et configurée avec succès. Apprenons ensuite comment utiliser le protocole d'autorisation OAuth2 pour sécuriser les applications Web.

  1. Utilisation du protocole OAuth2

OAuth2 est un protocole complexe qui contient de nombreux flux d'autorisation et d'authentification différents. Ici, nous présentons uniquement l'un des processus pour démontrer comment utiliser l'extension OAuth2.

Tout d'abord, nous devons enregistrer l'application et obtenir l'identifiant client et le secret client. Nous pouvons ensuite utiliser du code PHP pour appeler le flux d'autorisation fourni par l'extension OAuth2 :

<?php
require_once(&#39;vendor/autoload.php&#39;);

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    &#39;clientId&#39;                => '{clientId}',
    'clientSecret'            => '{clientSecret}',
    'redirectUri'             => 'http://example.com/callback',
    'urlAuthorize'            => 'http://example.com/authorize',
    'urlAccessToken'          => 'http://example.com/token',
    'urlResourceOwnerDetails' => 'http://example.com/me',
]);

$authorizationUrl = $provider->getAuthorizationUrl();
$_SESSION['oauth2state'] = $provider->getState();

header('Location: ' . $authorizationUrl);
Copier après la connexion

L'exemple ci-dessus générera une URL d'autorisation et redirigera l'utilisateur vers celle-ci. À cette URL, l'utilisateur doit se connecter et autoriser notre application à accéder à des données utilisateur spécifiques. Si l'utilisateur autorise notre application, nous recevrons un code d'autorisation qui pourra être échangé contre un jeton d'accès en utilisant le code suivant :

<?php
require_once(&#39;vendor/autoload.php&#39;);

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    &#39;clientId&#39;                => '{clientId}',
    'clientSecret'            => '{clientSecret}',
    'redirectUri'             => 'http://example.com/callback',
    'urlAuthorize'            => 'http://example.com/authorize',
    'urlAccessToken'          => 'http://example.com/token',
    'urlResourceOwnerDetails' => 'http://example.com/me',
]);

if (!isset($_GET['code'])) {

    $options = [
        'state' => 'OPTIONAL_CUSTOM_CONFIG_VALUE',
        'scope' => ['scope1', 'scope2'],
    ];

    $authorizationUrl = $provider->getAuthorizationUrl($options);
    $_SESSION['oauth2state'] = $provider->getState();

    header('Location: ' . $authorizationUrl);
    exit;

} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {

    unset($_SESSION['oauth2state']);
    exit('Invalid state');

} else {

    $token = $provider->getAccessToken('authorization_code', [
        'code' => $_GET['code']
    ]);

    echo $token->getToken();
}
Copier après la connexion

Le code ci-dessus renverra un jeton d'accès qui pourra être utilisé pour accéder aux données de l'utilisateur. Il suffit de transmettre le jeton d'accès à l'API fournie par l'extension OAuth2 pour accéder aux données utilisateur :

<?php
require_once(&#39;vendor/autoload.php&#39;);

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    &#39;clientId&#39;                => '{clientId}',
    'clientSecret'            => '{clientSecret}',
    'redirectUri'             => 'http://example.com/callback',
    'urlAuthorize'            => 'http://example.com/authorize',
    'urlAccessToken'          => 'http://example.com/token',
    'urlResourceOwnerDetails' => 'http://example.com/me',
]);

$accessToken = 'YOUR_ACCESS_TOKEN';

$response = $provider->getAuthenticatedRequest(
    'GET',
    'http://example.com/api/data',
    $accessToken
);

$data = json_decode((string) $provider->getResponse($response)->getBody(), true);

print_r($data);
Copier après la connexion

L'exemple ci-dessus obtiendra le jeton d'accès et appellera l'API pour accéder aux données utilisateur.

  1. Résumé

Dans cet article, nous avons appris comment installer l'extension OAuth2 en PHP7 et sécuriser votre application Web à l'aide du protocole d'autorisation OAuth2. Le protocole OAuth2 est un protocole de sécurité important qui peut nous aider à protéger la confidentialité des utilisateurs et la sécurité des données lors du développement Web. Dans votre prochain projet de développement Web, pensez à utiliser le protocole OAuth2 pour sécuriser les données des utilisateurs.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal