Wie verwende ich OAuth in der PHP-Programmierung?

WBOY
Freigeben: 2023-06-12 08:14:02
Original
1567 Leute haben es durchsucht

OAuth ist ein offener Standard, mit dem Benutzer Drittanbieteranwendungen den Zugriff auf ihre geschützten Ressourcen wie Daten oder Fotos autorisieren können. Bei der PHP-Programmierung kann uns die Verwendung von OAuth dabei helfen, Interaktionen mit Drittanbieterdiensten einfacher zu handhaben. In diesem Artikel wird erläutert, wie Sie OAuth in PHP für die Autorisierung, Authentifizierung und den Zugriff auf Dienste von Drittanbietern verwenden.

So funktioniert OAuth

Bevor Sie OAuth verwenden, müssen Sie verstehen, wie OAuth funktioniert. Der OAuth-Prozess kann in drei Schritte unterteilt werden: Anfordern eines Tokens, Benutzerautorisierung und Verwendung des Tokens für den Zugriff auf Ressourcen. Dabei handelt es sich beim Token um die Anmeldeinformationen, mit denen der Zugriff auf die geschützte Ressource autorisiert wird. Beim Anfordern eines Tokens müssen wir eine Client-ID und ein Client-Geheimnis angeben, um die Identität zu überprüfen. Nach der Autorisierung erhält der Benutzer ein Zugriffstoken, mit dem er auf geschützte Ressourcen zugreifen kann. Wir müssen dieses Token beim Zugriff auf die Ressource in den HTTP-Anforderungsheader einfügen.

Der Workflow von OAuth ist wie folgt:

  1. Der Client fordert ein Token vom Autorisierungsserver an.
  2. Der Autorisierungsserver überprüft die Identität des Clients und gibt bei erfolgreicher Authentifizierung einen Autorisierungscode an den Client zurück.
  3. Der Client sendet den Autorisierungscode an den Token-Server, um das Zugriffstoken zu erhalten.
  4. Der Tokenserver überprüft die Gültigkeit des Autorisierungscodes und sendet das Zugriffstoken an den Client.
  5. Der Client muss beim Senden jeder HTTP-Anfrage das Zugriffstoken in den Anforderungsheader einfügen.

So verwenden Sie OAuth in PHP

Um OAuth in PHP zu verwenden, müssen Sie eine OAuth-Bibliothek verwenden. Derzeit stehen viele OAuth-Bibliotheken zur Auswahl, darunter php-oauth, oauth2-server-php, league/oauth2-client usw. Hier erfahren Sie, wie Sie OAuth mit php-oauth verwenden.

  1. Installieren Sie php-oauth

Bevor Sie php-oauth verwenden, müssen Sie zuerst die Bibliothek installieren. Sie können php-oauth mit dem folgenden Befehl installieren:

composer require php-oauth/oauth1:^1.0
Nach dem Login kopieren
  1. OAuth-Client erstellen

Zum Erstellen eines OAuth-Clients müssen drei Parameter angegeben werden: Client-ID, Client-Geheimnis und API-Endpunkt. Im API-Endpunkt müssen Sie die Anforderungstoken-URL angeben und die Zugriffstoken-URL abrufen.

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'
]);
Nach dem Login kopieren
  1. Anfordern eines Tokens

Beim Anfordern eines Tokens müssen Sie eine Anfrage an den Autorisierungsserver senden. In der php-oauth-Bibliothek können wir mit der Methode getTemporaryCredentials ein Token anfordern. getTemporaryCredentials方法请求令牌。

$temporaryCredentials = $client->getTemporaryCredentials();
Nach dem Login kopieren

该方法返回临时凭据,用于用于使用授权服务作进一步请求,完成授权。

  1. 用户授权

在用户授权之前,需要向授权服务器发送一个授权请求。在php-oauth库中,我们可以使用getAuthorizationUrl方法获取授权URL.

$authorizationUrl = $client->getAuthorizationUrl($temporaryCredentials);
Nach dem Login kopieren

将该URL提供给用户以获取授权,完成授权后,将会重定向到我们指定的回调URL中,附带有授权码。

  1. 使用授权码获取访问令牌

在授权码获得之后,我们需要使用该授权码获取访问令牌。在php-oauth库中,我们可以使用getTokenCredentials方法。

$tokenCredentials = $client->getTokenCredentials($temporaryCredentials, $_GET['oauth_token'], $_GET['oauth_verifier']);
Nach dem Login kopieren

该方法将返回访问令牌,可以用于后续的请求。

  1. 使用访问令牌访问资源

在访问受保护资源时,我们需要在HTTP请求的头中包含访问令牌。在php-oauth库中,我们可以使用get

$response = $client->get('https://api.twitter.com/1.1/account/verify_credentials.json', $tokenCredentials);
Nach dem Login kopieren
Diese Methode gibt temporäre Anmeldeinformationen zurück, die verwendet werden, um weitere Anfragen über den Autorisierungsdienst zu stellen, um die Autorisierung abzuschließen.

    Benutzerautorisierung

    Bevor der Benutzer autorisiert, muss eine Autorisierungsanfrage an den Autorisierungsserver gesendet werden. In der php-oauth-Bibliothek können wir die Methode getAuthorizationUrl verwenden, um die Autorisierungs-URL zu erhalten.

    rrreee🎜 Geben Sie dem Benutzer die URL an, um die Autorisierung zu erhalten Die von uns angegebene Rückruf-URL enthält einen Autorisierungscode. 🎜
      🎜Verwenden Sie den Autorisierungscode, um das Zugriffstoken zu erhalten🎜🎜🎜Nachdem der Autorisierungscode erhalten wurde, müssen wir den Autorisierungscode verwenden, um das Zugriffstoken zu erhalten. In der php-oauth-Bibliothek können wir die Methode getTokenCredentials verwenden. 🎜rrreee🎜Diese Methode gibt ein Zugriffstoken zurück, das für nachfolgende Anfragen verwendet werden kann. 🎜
        🎜Zugriff auf Ressourcen mithilfe von Zugriffstokens🎜🎜🎜Beim Zugriff auf geschützte Ressourcen müssen wir das Zugriffstoken in den Header der HTTP-Anfrage einfügen. In der php-oauth-Bibliothek können wir die Methode get verwenden, um die Anfrage zu senden und das Zugriffstoken einzubinden. 🎜rrreee🎜Nachdem wir die Antwort erhalten haben, können wir die von der API zurückgegebenen Daten verarbeiten. 🎜🎜Zusammenfassung🎜🎜Mit OAuth können wir Benutzer einfach autorisieren und auf geschützte Ressourcen zugreifen. Bei der PHP-Programmierung stehen viele OAuth-Bibliotheken zur Auswahl, darunter php-oauth, oauth2-server-php, league/oauth2-client usw. Wenn wir OAuth verwenden, müssen wir verstehen, wie es funktioniert, und den Prozess befolgen, um die OAuth-Bibliothek zu verwenden. 🎜

Das obige ist der detaillierte Inhalt vonWie verwende ich OAuth in der PHP-Programmierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!