Heim >Backend-Entwicklung >PHP-Tutorial >Die PHP- und OAuth-Integration implementiert die API-Zugriffsautorisierung von Drittanbietern

Die PHP- und OAuth-Integration implementiert die API-Zugriffsautorisierung von Drittanbietern

WBOY
WBOYOriginal
2023-06-25 12:21:261685Durchsuche

Mit der kontinuierlichen Weiterentwicklung der Internet-Technologie müssen viele Produkte API-Schnittstellen von Drittanbietern aufrufen, um eine Funktionserweiterung zu erreichen. Unter diesen ist OAuth ein weit verbreitetes Standardautorisierungsframework. Sein Zweck besteht darin, einen Autorisierungsmechanismus zwischen verschiedenen Anwendungen bereitzustellen, sodass Benutzer Anwendungen von Drittanbietern den Zugriff auf ihre Ressourcen autorisieren können, ohne ihren Benutzernamen und ihr Kennwort an Dritte weiterzugeben. In diesem Artikel wird erläutert, wie Sie mit PHP das OAuth-Framework integrieren und die API-Zugriffsautorisierung von Drittanbietern implementieren.

1. Das Grundkonzept von OAuth

OAuth ist ein offener Standard-Autorisierungsrahmen. Sein Zweck besteht darin, einen Autorisierungsmechanismus zwischen verschiedenen Anwendungen bereitzustellen, damit Benutzer Anwendungen von Drittanbietern autorisieren können, auf ihre Ressourcen zuzugreifen, ohne Benutzernamen und Passwörter an Dritte weiterzugeben Parteien.

Im OAuth-Framework gibt es drei Rollen: Autorisierungsserver, Ressourcenserver und Client. Unter diesen ist der Autorisierungsserver für die Authentifizierung und Autorisierung von Benutzern verantwortlich, der Ressourcenserver ist für die Speicherung und Bereitstellung von Ressourcen verantwortlich und der Client ist eine Anwendung, die auf Ressourcen zugreifen muss.

Der OAuth-Autorisierungsprozess umfasst im Allgemeinen die folgenden Schritte:

  1. Client-Registrierung: Der Client registriert sich beim Autorisierungsserver und beantragt eine Client-ID und einen geheimen Client-Schlüssel.
  2. Autorisierung anfordern: Der Client fordert eine Benutzerautorisierung vom Autorisierungsserver an, und der Autorisierungsserver leitet den Benutzer zur Anmeldeseite weiter und fordert den Benutzer auf, einen Benutzernamen und ein Passwort einzugeben.
  3. Benutzerautorisierung: Nachdem der Benutzer seinen Benutzernamen und sein Passwort eingegeben hat, überprüft der Autorisierungsserver die Identität des Benutzers und fordert den Benutzer auf, die Anfrage des Clients zum Zugriff auf seine Ressourcen zu genehmigen.
  4. Autorisierung erhalten: Der Autorisierungsserver stellt dem Client Zugriffstoken und Aktualisierungstoken aus.
  5. Zugriff auf Ressourcen: Der Client verwendet das Zugriffstoken, um auf den Ressourcenserver zuzugreifen und Benutzerdaten abzurufen.
  6. Aktualisierungstoken: Wenn das Zugriffstoken abläuft, verwendet der Client das Aktualisierungstoken, um ein neues Zugriffstoken vom Autorisierungsserver anzufordern.

2. Integration von PHP und OAuth

PHP bietet viele Klassenbibliotheken und Frameworks zur einfachen Implementierung der OAuth-Autorisierung. Im Folgenden wird oauth2-client als Beispiel verwendet, um die Verwendung von PHP zur Integration des OAuth-Frameworks zur Implementierung der API-Zugriffsautorisierung von Drittanbietern vorzustellen.

  1. Oauth2-Client installieren

OAuth2-Client ist ein in PHP implementierter OAuth2.0-Client, mit dem Zugriffstoken vom OAuth2.0-Autorisierungsserver angefordert werden können. Die Installation von oauth2-client kann über Composer erfolgen. Führen Sie den folgenden Befehl im Terminal aus, um oauth2-client zu installieren:

$ composer require league/oauth2-client
  1. Client erstellen

Bevor Sie oauth2-client verwenden, müssen Sie ein Clientobjekt erstellen. Das Client-Objekt enthält die folgenden Konfigurationsinformationen:

<?php
$provider = new LeagueOAuth2ClientProviderGenericProvider([
    'clientId'                => '...',
    'clientSecret'            => '...',
    'redirectUri'             => '...',
    'urlAuthorize'            => '...',
    'urlAccessToken'          => '...',
    'urlResourceOwnerDetails' => '...'
]);
?>

Hier sind clientId, clientSecret und restartUri erforderlich, und andere URL-Links müssen entsprechend der tatsächlichen Situation ausgefüllt werden.

  1. Autorisierungscode anfordern

Als nächstes müssen wir einen Autorisierungscode anfordern. Im OAuth2.0-Autorisierungsprozess muss der Client zuerst den Autorisierungscode erhalten und dann mithilfe des Autorisierungscodes ein Zugriffstoken vom Autorisierungsserver anfordern.

<?php
$authUrl = $provider->getAuthorizationUrl();
header('Location: '.$authUrl);

Im obigen Code erhalten wir den Link zur Anforderung des Autorisierungscodes über die Methode getAuthorizationUrl und verwenden die Header-Funktion, um den Benutzer zum Autorisierungslink umzuleiten und auf die Autorisierung des Benutzers zu warten.

  1. Zugriffstoken abrufen

Nach erfolgreicher Autorisierung leitet der Autorisierungsserver den Autorisierungscode an die im RedirectUri-Konfigurationselement angegebene Adresse um und übergibt den Autorisierungscode in Form eines GET-Parameters. Über den Autorisierungscode können wir ein Zugriffstoken vom Autorisierungsserver anfordern.

<?php
$code = $_GET['code'];
$token = $provider->getAccessToken('authorization_code', [
    'code' => $code
]);
echo $token->getToken();
?>

Im obigen Code verwenden wir die Methode getAccessToken, um das Zugriffstoken anzufordern und den Autorisierungscode als Parameter zu übergeben. Nachdem wir das Zugriffstoken erfolgreich erhalten haben, können wir den Wert des Zugriffstokens über die getToken-Methode abrufen.

  1. Zugriffstoken aktualisieren

Wenn das Zugriffstoken abläuft, müssen Sie ein neues Zugriffstoken erhalten, indem Sie das Token aktualisieren. In oauth2-client kann die Methode „refreshToken“ zum Aktualisieren des Tokens verwendet werden.

<?php
$refreshToken = $token->getRefreshToken();
$newToken = $provider->getAccessToken('refresh_token', [
    'refresh_token' => $refreshToken
]);
echo $newToken->getToken();
?>

Im obigen Code erhalten wir das alte Zugriffstoken über die Methode getToken und aktualisieren es über die Methode restartToken, um das neue Zugriffstoken zu erhalten. Es ist wichtig zu beachten, dass das Aktualisierungstoken nur zurückgegeben wird, wenn ein Zugriffstoken abgerufen wird.

3. Zusammenfassung

In diesem Artikel wird erläutert, wie Sie mit PHP das OAuth-Framework integrieren, um eine API-Zugriffsautorisierung von Drittanbietern zu erreichen. Durch diese Lösung können wir problemlos auf von Dritten bereitgestellte APIs zugreifen, ohne den Benutzernamen und das Passwort des Benutzers an Dritte weiterzugeben. Wenn Sie die API-Zugriffsautorisierung von Drittanbietern in Ihren eigenen Produkten implementieren müssen, können Sie auf den in diesem Artikel beschriebenen Inhalt zurückgreifen. Ich hoffe, dass er für Sie hilfreich ist.

Das obige ist der detaillierte Inhalt vonDie PHP- und OAuth-Integration implementiert die API-Zugriffsautorisierung von Drittanbietern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn