Verwenden Sie PHP, um die Autorisierung und Authentifizierung von Drittanbietern basierend auf OAuth2 zu implementieren.
OAuth2 ist ein offenes Standardprotokoll, mit dem Anwendungen von Drittanbietern autorisiert werden, zur Authentifizierung auf Benutzerressourcen zuzugreifen. Es ist einfach, sicher und flexibel und wird häufig in verschiedenen Webanwendungen und mobilen Anwendungen eingesetzt.
In PHP können wir die OAuth2-Autorisierung und -Authentifizierung mithilfe von Bibliotheken von Drittanbietern implementieren. In diesem Artikel wird Beispielcode kombiniert, um die Verwendung von PHP zur Implementierung der Autorisierung und Authentifizierung von Drittanbietern basierend auf OAuth2 vorzustellen.
Zuerst müssen wir Composer verwenden, um eine OAuth2-PHP-Bibliothek zu installieren. Führen Sie den folgenden Befehl in der Befehlszeile aus:
composer require league/oauth2-client
Nach Abschluss der Installation können wir den folgenden Codeausschnitt verwenden, um den OAuth2-Autorisierungsprozess zu implementieren.
<?php require 'vendor/autoload.php'; use LeagueOAuth2ClientProviderGenericProvider; $provider = new GenericProvider([ 'clientId' => 'your_client_id', 'clientSecret' => 'your_client_secret', 'redirectUri' => 'http://localhost/callback.php', 'urlAuthorize' => 'https://authorization-server.com/auth', 'urlAccessToken' => 'https://authorization-server.com/token', 'urlResourceOwnerDetails' => 'https://api.server.com/userinfo' ]); // 获取授权地址 $authorizationUrl = $provider->getAuthorizationUrl(); // 将授权地址重定向到用户 header('Location: ' . $authorizationUrl);
Im obigen Code erstellen wir zunächst ein GenericProvider
-Objekt und müssen relevante Konfigurationsinformationen übergeben. Darunter sind clientId
und clientSecret
die vom Autorisierungsserver bereitgestellte Anwendungs-ID und redirectUri
ist die Weiterleitungsadresse, nachdem der Benutzer die Autorisierung abgeschlossen hat ; urlAuthorize
ist die Autorisierungsadresse des Autorisierungsservers; urlAccessToken
ist die Token-Erfassungsadresse des Autorisierungsservers; urlResourceOwnerDetails
ist die Schnittstellenadresse zum Abrufen Benutzerinformationen. GenericProvider
对象,需要传入相关的配置信息。其中,clientId
和clientSecret
是由授权服务器提供的应用程序标识和秘钥;redirectUri
是用户完成授权后重定向的地址;urlAuthorize
是授权服务器的授权地址;urlAccessToken
是授权服务器的令牌获取地址;urlResourceOwnerDetails
是获取用户信息的接口地址。
接下来,我们使用getAuthorizationUrl
方法获取授权地址,然后将其重定向给用户。用户将通过授权地址进行登录并授权,然后将被重定向回我们提供的redirectUri
地址。
我们还需要创建一个回调页面callback.php
来处理用户完成授权后的重定向。以下是callback.php
的代码示例:
<?php require 'vendor/autoload.php'; use LeagueOAuth2ClientProviderGenericProvider; $provider = new GenericProvider([ 'clientId' => 'your_client_id', 'clientSecret' => 'your_client_secret', 'redirectUri' => 'http://localhost/callback.php', 'urlAuthorize' => 'https://authorization-server.com/auth', 'urlAccessToken' => 'https://authorization-server.com/token', 'urlResourceOwnerDetails' => 'https://api.server.com/userinfo' ]); // 获取令牌 $token = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]); // 使用令牌获取用户信息 $user = $provider->getResourceOwner($token); // 输出用户信息 echo 'User ID: ' . $user->getId() . '<br>'; echo 'User Name: ' . $user->getName() . '<br>';
在callback.php
中,我们通过getAccessToken
方法获取用户授权后返回的令牌,然后使用这个令牌通过getResourceOwner
getAuthorizationUrl
, um die Autorisierungsadresse abzurufen und sie dann an den Benutzer weiterzuleiten. Der Benutzer meldet sich über die Autorisierungsadresse an und autorisiert ihn. Anschließend wird er zurück an die von uns bereitgestellte redirectUri
-Adresse weitergeleitet. Wir müssen außerdem eine Rückrufseite callback.php
erstellen, um die Umleitung zu verarbeiten, nachdem der Benutzer die Autorisierung abgeschlossen hat. Das Folgende ist ein Codebeispiel von callback.php
: rrreee
Incallback.php
erhalten wir das Token, das nach der Benutzerautorisierung über den getAccessToken
zurückgegeben wird >-Methoden-Token und verwenden Sie dann dieses Token, um die Informationen des Benutzers über die Methode getResourceOwner
abzurufen. Das Obige ist der Beispielcode für die Verwendung von PHP zur Implementierung der Autorisierung und Authentifizierung durch Dritte basierend auf OAuth2. Mithilfe dieser Codes können wir die Benutzerautorisierungsanmeldung implementieren und autorisierte Benutzerinformationen erhalten. Das obige ist der detaillierte Inhalt vonVerwendung von PHP zur Implementierung der Autorisierung und Authentifizierung von Drittanbietern basierend auf OAuth2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!