Heim  >  Artikel  >  Backend-Entwicklung  >  In einem Artikel wird erläutert, wie die oauth2-Erweiterung in PHP7 installiert wird

In einem Artikel wird erläutert, wie die oauth2-Erweiterung in PHP7 installiert wird

PHPz
PHPzOriginal
2023-03-21 10:50:421878Durchsuche

PHP7 ist eine effiziente Programmiersprache, die im Bereich der Webentwicklung schon immer eine beliebte Wahl war. Das OAuth2-Protokoll ist ein offener Standard für Authentifizierung und Autorisierung, der zum Schutz der Sicherheit von Webanwendungen und der Privatsphäre der Benutzer dient. Sehen wir uns nun an, wie man die OAuth2-Erweiterung in PHP7 installiert, damit wir dieses Protokoll in der Webentwicklung verwenden können.

  1. OAuth2-Erweiterung installieren

Um die OAuth2-Erweiterung in PHP7 zu installieren, müssen wir den Befehl pecl verwenden. Führen Sie den folgenden Befehl im Terminal aus:

pecl install oauth-2.0.4

Wenn pecl nicht in Ihrem System installiert ist, können Sie es mit dem folgenden Befehl installieren:

sudo apt-get install php-pear
  1. Konfigurieren Sie die PHP.ini-Datei

Nach der Installation benötigen wir So konfigurieren Sie die PHP.ini-Datei: Fügen Sie der Datei die OAuth2-Erweiterung hinzu. Führen Sie den folgenden Befehl im Terminal aus, um den Pfad Ihrer php.ini-Datei zu finden:

php --ini

Öffnen Sie die gefundene php.ini-Datei und fügen Sie am Ende den folgenden Code hinzu:

extension=oauth.so

Speichern Sie die Datei und starten Sie den PHP-FPM-Dienst neu:

sudo systemctl restart php7-fpm

Jetzt wurde die OAuth2-Erweiterung erfolgreich installiert und konfiguriert. Als Nächstes erfahren Sie, wie Sie das OAuth2-Autorisierungsprotokoll zum Sichern von Webanwendungen verwenden.

  1. Verwendung des OAuth2-Protokolls

OAuth2 ist ein komplexes Protokoll, das viele verschiedene Autorisierungs- und Authentifizierungsprozesse enthält. Hier stellen wir nur einen der Prozesse vor, um zu demonstrieren, wie die OAuth2-Erweiterung verwendet wird.

Zuerst müssen wir die Anwendung registrieren und die Kunden-ID und das Kundengeheimnis erhalten. Anschließend können wir PHP-Code verwenden, um den von der OAuth2-Erweiterung bereitgestellten Autorisierungsfluss aufzurufen:

<?php
require_once(&#39;vendor/autoload.php&#39;);

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    &#39;clientId&#39;                => '{clientId}',
    'clientSecret'            => '{clientSecret}',
    'redirectUri'             => 'http://example.com/callback',
    'urlAuthorize'            => 'http://example.com/authorize',
    'urlAccessToken'          => 'http://example.com/token',
    'urlResourceOwnerDetails' => 'http://example.com/me',
]);

$authorizationUrl = $provider->getAuthorizationUrl();
$_SESSION['oauth2state'] = $provider->getState();

header('Location: ' . $authorizationUrl);

Das obige Beispiel generiert eine Autorisierungs-URL und leitet den Benutzer dorthin weiter. Unter dieser URL muss sich der Benutzer anmelden und unserer Anwendung den Zugriff auf bestimmte Benutzerdaten autorisieren. Wenn der Benutzer unsere Anwendung autorisiert, erhalten wir einen Autorisierungscode, der mit dem folgenden Code gegen einen Zugriffstoken eingetauscht werden kann:

<?php
require_once(&#39;vendor/autoload.php&#39;);

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    &#39;clientId&#39;                => '{clientId}',
    'clientSecret'            => '{clientSecret}',
    'redirectUri'             => 'http://example.com/callback',
    'urlAuthorize'            => 'http://example.com/authorize',
    'urlAccessToken'          => 'http://example.com/token',
    'urlResourceOwnerDetails' => 'http://example.com/me',
]);

if (!isset($_GET['code'])) {

    $options = [
        'state' => 'OPTIONAL_CUSTOM_CONFIG_VALUE',
        'scope' => ['scope1', 'scope2'],
    ];

    $authorizationUrl = $provider->getAuthorizationUrl($options);
    $_SESSION['oauth2state'] = $provider->getState();

    header('Location: ' . $authorizationUrl);
    exit;

} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {

    unset($_SESSION['oauth2state']);
    exit('Invalid state');

} else {

    $token = $provider->getAccessToken('authorization_code', [
        'code' => $_GET['code']
    ]);

    echo $token->getToken();
}

Der obige Code gibt einen Zugriffstoken zurück, mit dem auf die Benutzerdaten zugegriffen werden kann. Wir müssen lediglich das Zugriffstoken an die von der OAuth2-Erweiterung bereitgestellte API übergeben, um auf die Benutzerdaten zuzugreifen:

<?php
require_once(&#39;vendor/autoload.php&#39;);

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    &#39;clientId&#39;                => '{clientId}',
    'clientSecret'            => '{clientSecret}',
    'redirectUri'             => 'http://example.com/callback',
    'urlAuthorize'            => 'http://example.com/authorize',
    'urlAccessToken'          => 'http://example.com/token',
    'urlResourceOwnerDetails' => 'http://example.com/me',
]);

$accessToken = 'YOUR_ACCESS_TOKEN';

$response = $provider->getAuthenticatedRequest(
    'GET',
    'http://example.com/api/data',
    $accessToken
);

$data = json_decode((string) $provider->getResponse($response)->getBody(), true);

print_r($data);

Das obige Beispiel ruft das Zugriffstoken ab und ruft die API auf, um auf die Benutzerdaten zuzugreifen.

  1. Zusammenfassung

In diesem Artikel haben wir erfahren, wie Sie die OAuth2-Erweiterung in PHP7 installieren und Ihre Webanwendung mithilfe des OAuth2-Autorisierungsprotokolls sichern. Das OAuth2-Protokoll ist ein wichtiges Sicherheitsprotokoll, das uns dabei helfen kann, die Privatsphäre und Datensicherheit der Benutzer während der Webentwicklung zu schützen. Denken Sie bei Ihrem nächsten Webentwicklungsprojekt daran, das OAuth2-Protokoll zu verwenden, um die Sicherheit der Benutzerdaten zu gewährleisten.

Das obige ist der detaillierte Inhalt vonIn einem Artikel wird erläutert, wie die oauth2-Erweiterung in PHP7 installiert wird. 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