Avec le développement et la vulgarisation continus d'Internet, de plus en plus de sites Web et d'applications fourniront des services de connexion et d'autorisation tiers pour permettre aux utilisateurs de s'inscrire et de se connecter rapidement, et également d'obtenir plus facilement les données utilisateur. En tant que norme d'autorisation ouverte courante, OAuth2 est largement utilisé dans les scénarios de connexion et d'autorisation tiers.
Cet article expliquera comment utiliser PHP et OAuth2 pour implémenter la connexion et l'autorisation tierces. Nous utiliserons GitHub comme exemple de plate-forme pour montrer comment utiliser OAuth2 pour obtenir des informations utilisateur et stocker ces informations dans une base de données locale.
Créez une application OAuth sur GitHub et enregistrez l'ID client et le secret client générés pour une utilisation ultérieure.
Pour implémenter OAuth2 en PHP, vous pouvez utiliser une bibliothèque client OAuth2 tierce. Ici, nous utilisons le client PHPleague/oauth2 comme exemple de bibliothèque.
Utilisez Composer pour installer, si Composer n’est pas encore installé, veuillez d’abord l’installer.
Exécutez la commande suivante dans le terminal :
composer require league/oauth2-client
La création du lien d'autorisation est la première étape. À l'aide du lien d'autorisation, l'utilisateur peut être redirigé vers GitHub et demander une autorisation.
Voici un exemple de code pour créer le lien d'autorisation :
<?php require_once __DIR__ . '/vendor/autoload.php'; $provider = new LeagueOAuth2ClientProviderGithub([ 'clientId' => 'YOUR_CLIENT_ID', 'clientSecret' => 'YOUR_CLIENT_SECRET', 'redirectUri' => 'http://localhost:8000/callback.php', ]); $authUrl = $provider->getAuthorizationUrl([ 'scope' => ['user'], ]); header('Location: ' . $authUrl);
Ce code effectue les opérations suivantes :
Une fois que l'utilisateur aura autorisé votre application sur GitHub, il sera redirigé vers votre application. Dans cette URL de redirection, vous pouvez obtenir le jeton d'accès.
Voici l'exemple de code pour obtenir le jeton d'accès :
<?php require_once __DIR__ . '/vendor/autoload.php'; $provider = new LeagueOAuth2ClientProviderGithub([ 'clientId' => 'YOUR_CLIENT_ID', 'clientSecret' => 'YOUR_CLIENT_SECRET', 'redirectUri' => 'http://localhost:8000/callback.php', ]); if (!isset($_GET['code'])) { die('授权失败:没有授权码!'); } else { $accessToken = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'], ]); } echo '访问令牌:' . $accessToken->getToken();
Maintenant que nous avons obtenu le jeton d'accès, nous pouvons utiliser le jeton d'accès pour obtenir les données utilisateur. Prenons l'exemple de l'obtention d'informations utilisateur :
$user = $provider->getResourceOwner($accessToken); echo '用户ID:' . $user->getId() . '<br>'; echo '用户名:' . $user->getNickname() . '<br>'; echo '头像URL:' . $user->getAvatarUrl() . '<br>'; echo '主页URL:' . $user->getProfileUrl() . '<br>';
Après avoir obtenu les données utilisateur, nous pouvons stocker les données dans une base de données locale pour une utilisation ultérieure.
Dans cet article, nous avons présenté comment utiliser PHP et OAuth2 pour implémenter la connexion et l'autorisation tierces. Grâce à un exemple simple, nous avons appris à utiliser la bibliothèque client OAuth2 pour créer des liens d'autorisation, obtenir des jetons d'accès et obtenir des données utilisateur. J'espère que cet article vous sera utile.
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!