Maison >développement back-end >tutoriel php >Comment utiliser OAuth en programmation PHP ?
OAuth est un standard ouvert permettant aux utilisateurs d'autoriser des applications tierces à accéder à leurs ressources protégées, telles que des données ou des photos. En programmation PHP, l'utilisation d'OAuth peut nous aider à gérer facilement les interactions avec des services tiers. Cet article explique comment utiliser OAuth en PHP pour l'autorisation, l'authentification et l'accès à des services tiers.
Comment fonctionne OAuth
Avant d'utiliser OAuth, vous devez comprendre comment fonctionne OAuth. Le processus OAuth peut être divisé en trois étapes : demander un jeton, l'autorisation de l'utilisateur et utiliser le jeton pour accéder aux ressources. Où le jeton est l'identifiant utilisé pour autoriser l'accès à la ressource protégée. Lors de la demande d'un jeton, nous devons spécifier un identifiant client et un secret client pour vérifier l'identité. Après autorisation, l'utilisateur obtiendra un jeton d'accès, qui pourra être utilisé pour accéder aux ressources protégées. Nous devons inclure ce jeton dans l'en-tête de la requête HTTP lors de l'accès à la ressource.
Le workflow d'OAuth est le suivant :
Comment utiliser OAuth en PHP
Pour utiliser OAuth en PHP, vous devez utiliser une bibliothèque OAuth. Actuellement, il existe de nombreuses bibliothèques OAuth parmi lesquelles choisir, notamment php-oauth, oauth2-server-php, league/oauth2-client, etc. Voici comment utiliser OAuth en utilisant php-oauth.
Avant d'utiliser php-oauth, vous devez d'abord installer la bibliothèque. Vous pouvez installer php-oauth à l'aide de la commande suivante :
composer require php-oauth/oauth1:^1.0
La création d'un client OAuth nécessite de spécifier trois paramètres : l'ID client, le secret client et le point de terminaison de l'API. Dans le point de terminaison de l'API, vous devez spécifier l'URL du jeton de demande et obtenir l'URL du jeton d'accès.
use OAuthOAuth1ClientServerTwitter; $client = new Twitter([ 'identifier' => 'client_id', 'secret' => 'client_secret', 'callback_uri' => 'http://your-callback-url.com', 'token_url' => 'https://api.twitter.com/oauth/request_token', 'auth_url' => 'https://api.twitter.com/oauth/authorize', 'api_url' => 'https://api.twitter.com' ]);
Lors de la demande d'un jeton, vous devez envoyer une demande au serveur d'autorisation. Dans la bibliothèque php-oauth, nous pouvons demander un token en utilisant la méthode getTemporaryCredentials
. getTemporaryCredentials
方法请求令牌。
$temporaryCredentials = $client->getTemporaryCredentials();
该方法返回临时凭据,用于用于使用授权服务作进一步请求,完成授权。
在用户授权之前,需要向授权服务器发送一个授权请求。在php-oauth库中,我们可以使用getAuthorizationUrl
方法获取授权URL.
$authorizationUrl = $client->getAuthorizationUrl($temporaryCredentials);
将该URL提供给用户以获取授权,完成授权后,将会重定向到我们指定的回调URL中,附带有授权码。
在授权码获得之后,我们需要使用该授权码获取访问令牌。在php-oauth库中,我们可以使用getTokenCredentials
方法。
$tokenCredentials = $client->getTokenCredentials($temporaryCredentials, $_GET['oauth_token'], $_GET['oauth_verifier']);
该方法将返回访问令牌,可以用于后续的请求。
在访问受保护资源时,我们需要在HTTP请求的头中包含访问令牌。在php-oauth库中,我们可以使用get
$response = $client->get('https://api.twitter.com/1.1/account/verify_credentials.json', $tokenCredentials);Cette méthode renvoie des informations d'identification temporaires, qui sont utilisées pour effectuer d'autres demandes en utilisant le service d'autorisation pour finaliser l'autorisation.
Avant que l'utilisateur n'autorise, une demande d'autorisation doit être envoyée au serveur d'autorisation. Dans la bibliothèque php-oauth, nous pouvons utiliser la méthode getAuthorizationUrl
pour obtenir l'URL d'autorisation
getTokenCredentials
. 🎜rrreee🎜Cette méthode renverra un jeton d'accès qui pourra être utilisé pour les requêtes ultérieures. 🎜get
pour envoyer la requête et inclure le jeton d'accès. 🎜rrreee🎜Après avoir obtenu la réponse, nous pouvons traiter les données renvoyées par l'API. 🎜🎜Résumé🎜🎜L'utilisation d'OAuth nous permet d'autoriser facilement les utilisateurs et d'accéder aux ressources protégées. Dans la programmation PHP, il existe de nombreuses bibliothèques OAuth parmi lesquelles choisir, notamment php-oauth, oauth2-server-php, league/oauth2-client, etc. Lorsque nous utilisons OAuth, nous devons comprendre son fonctionnement et suivre le processus d'utilisation de la bibliothèque OAuth. 🎜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!