Maison >développement back-end >tutoriel php >Comment utiliser GuzzleHttp pour l'authentification OAuth2 en PHP

Comment utiliser GuzzleHttp pour l'authentification OAuth2 en PHP

PHPz
PHPzoriginal
2023-06-27 14:48:121680parcourir

Avec le développement continu de la technologie Internet, de plus en plus d'applications nécessitent l'authentification OAuth2. GuzzleHttp en PHP est une bibliothèque de requêtes HTTP couramment utilisée. Comment utiliser GuzzleHttp pour l'authentification OAuth2 ? Cet article présentera en détail l'utilisation de l'authentification OAuth2 de GuzzleHttp.

1. Installez GuzzleHttp

Utilisez Composer pour installer GuzzleHttp :

composer require guzzlehttp/guzzle

2. Enregistrez le service OAuth2

GuzzleHttp fournit le service OAuth2 pour générer des jetons d'accès. Avant d'utiliser le service OAuth2, vous devez instancier et configurer le service OAuth2.

Exemple :

$provider = new LeagueOAuth2ClientProviderGenericProvider([
    'clientId'                => 'yourClientId',    
    'clientSecret'            => 'yourClientSecret', 
    'redirectUri'             => 'https://example.com/callback-url', 
    'urlAuthorize'            => 'https://example.com/oauth2/authorize',
    'urlAccessToken'          => 'https://example.com/oauth2/token',
    'urlResourceOwnerDetails' => 'https://example.com/oauth2/resource', 
]);

Dans le code ci-dessus, $provider est une instance du service OAuth2. La signification des paramètres de configuration spécifiques est la suivante :

  • clientId : ID client, utilisé pour identifier l'application.
  • clientSecret : secret client, utilisé pour l'authentification de sécurité.
  • redirectUri : URL de rappel, utilisée pour obtenir le code d'autorisation.
  • urlAuthorize : URL d'autorisation, utilisée pour obtenir le code d'autorisation.
  • urlAccessToken : URL du jeton d'accès, utilisée pour obtenir le jeton d'accès.
  • urlResourceOwnerDetails : URL des détails du propriétaire de la ressource, utilisée pour obtenir des informations sur le propriétaire de la ressource.

3. Obtenir un jeton d'accès

Les étapes pour obtenir un jeton d'accès à l'aide du service OAuth2 sont les suivantes :

  • Redirection vers l'URL d'autorisation pour obtenir le code d'autorisation.
  • Prenez le code d'autorisation et obtenez le jeton d'accès.
  • Utilisez le jeton d'accès pour accéder à l'interface API.

Exemple :

// redirect to authorization URL
$authorizationUrl = $provider->getAuthorizationUrl();
header('Location: ' . $authorizationUrl);

// exchange authorization code for access token
$accessToken = $provider->getAccessToken('authorization_code', [
    'code' => $_GET['code']
]);

// use access token to access protected resources
$response = $http->request('GET', 'https://example.com/api/resource', [
    'headers' => [
        'Authorization' => 'Bearer ' . $accessToken->getToken()
    ]
]);

Dans le code ci-dessus, redirigez d'abord vers l'URL d'autorisation pour obtenir le code d'autorisation, puis utilisez le code d'autorisation pour obtenir le jeton d'accès, et enfin utilisez le jeton d'accès pour accéder à l'interface API.

4. Utiliser un jeton d'actualisation

Les jetons d'accès sont sensibles au temps et vous devez généralement utiliser des jetons d'actualisation pour mettre à jour les jetons d'accès. Les étapes pour utiliser un jeton d'actualisation sont les suivantes :

  • Prenez le jeton d'actualisation et obtenez un nouveau jeton d'accès.
  • Mettez à jour le jeton d'accès et utilisez le nouveau jeton d'accès pour accéder à l'interface API.

Exemple :

// refresh access token using refresh token
$accessToken = $provider->getAccessToken('refresh_token', [
    'refresh_token' => $accessToken->getRefreshToken()
]);

// use refreshed access token to access protected resources
$response = $http->request('GET', 'https://example.com/api/resource', [
    'headers' => [
        'Authorization' => 'Bearer ' . $accessToken->getToken()
    ]
]);

Dans le code ci-dessus, utilisez le jeton d'actualisation pour obtenir un nouveau jeton d'accès, puis mettez à jour le jeton d'accès et utilisez le nouveau jeton d'accès pour accéder à l'interface API.

5. Résumé

Ce qui précède est une introduction détaillée à l'utilisation de GuzzleHttp pour l'authentification OAuth2 en PHP. Tout d'abord, vous devez instancier le service OAuth2 et effectuer les configurations associées, puis obtenir le code d'autorisation via l'URL d'autorisation, puis utiliser le code d'autorisation pour obtenir le jeton d'accès. Vous devez transporter le jeton d'accès lors de l'accès à l'interface API. Les jetons d'accès sont sensibles au temps et peuvent être mis à jour à l'aide de jetons d'actualisation. GuzzleHttp est une bibliothèque de requêtes HTTP couramment utilisée. En utilisant le service OAuth2 de GuzzleHttp, l'authentification OAuth2 peut être facilement effectuée.

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