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.
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
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
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
Ouvrez le fichier php.ini trouvé et ajoutez le code suivant à la fin :
extension=oauth.so
Enregistrez le fichier et redémarrez le service PHP-FPM :
sudo systemctl restart php7-fpm
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.
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('vendor/autoload.php'); $provider = new \League\OAuth2\Client\Provider\GenericProvider([ 'clientId' => '{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);
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('vendor/autoload.php'); $provider = new \League\OAuth2\Client\Provider\GenericProvider([ 'clientId' => '{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(); }
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('vendor/autoload.php'); $provider = new \League\OAuth2\Client\Provider\GenericProvider([ 'clientId' => '{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);
L'exemple ci-dessus obtiendra le jeton d'accès et appellera l'API pour accéder aux données utilisateur.
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!