Dieses Tutorial zeigt, dass ein robustes OAuth2 -Server innerhalb einer Laravel -Anwendung mit der Laravel -Passbibliothek erstellt wird. Wir werden die Serverkonfiguration behandeln und ein praktisches Beispiel für den Verzehr von OAuth2 -APIs angeben. Grundlegendes OAuth2 -Wissen wird angenommen. Laravel Pass vereinfacht den Prozess erheblich.
Das Tutorial ist in zwei Teile unterteilt: Installation und Konfiguration der Bibliothek, gefolgt vom Erstellen und Verbrauch von Beispielressourcen.
Serverkonfiguration
In diesem Abschnitt werden die erforderlichen Komponenten für Passpass mit Laravel installiert und konfiguriert.
.Installation der Laravel -Pass -Bibliothek
Verwenden Sie den Komponisten, um die Bibliothek zu installieren:
composer require laravel/passport
Dies führt zu der Pass -Installation. Als nächstes werden wir es in Laravel integrieren.
Aktivieren Sie den Passdienst
config/app.php
Laravel verwendet Dienstanbieter, um Anwendungsdienste zu verwalten. Um den Pass zu aktivieren, müssen Sie seinen Dienstanbieter zu boot
hinzufügen. (Wenn Sie mit Laravel -Dienstanbietern nicht vertraut sind, beziehen Sie sich auf eine relevante Einführungsressource.) Entscheidend müssen Sie auch die Routen des Passports registrieren (innerhalb der app/Providers/AuthServiceProvider.php
-Methode von php artisan passport:install
) und den Befehl
php artisan passport:client
Der Eintrag fordert Details ein: Benutzer -ID, Clientname und URI umleiten. In der Umleitungs -URI wird der Benutzer nach der Autorisierung umgeleitet, wobei der Autorisierungscode trägt.
Nehmen wir die folgende Ausgabe an:
<code>New client created successfully. Client ID: 3 Client secret: 1BT1tNj0Are27IGvIZe4lE2jRjtiVt0fmtaWBe8m</code>
Jetzt können wir die OAuth2 -Apis testen.
oauth2_client
Für dieses Beispiel werden wir ein
erstellen oAuth2_client/auth_redirection.php
:<?php $query = http_build_query([ 'client_id' => '3', 'redirect_uri' => 'http://localhost/oauth2_client/callback.php', 'response_type' => 'code', 'scope' => '', ]); header('Location: http://your-laravel-site-url/oauth/authorize?' . $query); ?>
client_id
Denken Sie daran, Platzhalter wie redirect_uri
und
Erstellen Sie als nächstes oAuth2_client/callback.php
:<?php if (isset($_REQUEST['code']) && $_REQUEST['code']) { $ch = curl_init(); $url = 'http://your-laravel-site-url/oauth/token'; $params = [ 'grant_type' => 'authorization_code', 'client_id' => '3', 'client_secret' => '1BT1tNj0Are27IGvIZe4lE2jRjtiVt0fmtaWBe8m', 'redirect_uri' => 'http://localhost/oauth2_client/callback.php', 'code' => $_REQUEST['code'], ]; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $params_string = ''; if (is_array($params) && count($params)) { foreach ($params as $key => $value) { $params_string .= $key . '=' . $value . '&'; } rtrim($params_string, '&'); curl_setopt($ch, CURLOPT_POST, count($params)); curl_setopt($ch, CURLOPT_POSTFIELDS, $params_string); } $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); if (isset($response->access_token) && $response->access_token) { $access_token = $response->access_token; $ch = curl_init(); $url = 'http://your-laravel-site-url/api/user/get'; $header = ['Authorization: Bearer ' . $access_token]; $query = http_build_query(['uid' => '1']); curl_setopt($ch, CURLOPT_URL, $url . '?' . $query); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); var_dump($result); } } ?>
Passen Sie erneut URLs und Anmeldeinformationen nach Bedarf an.
Workflow
Der Benutzer interagiert mit zwei Anwendungen: der Laravel-Anwendung (mit einem vorhandenen Konto) und dem Drittanbieter-Client (Auth_redirection.php und Callback.php).
http://localhost/oauth2_client/auth_redirection.php
. http://localhost/oauth2_client/callback.php
umgeleitet. callback.php
tauscht den Code gegen einen Zugriffstoken aus. http://your-laravel-site-url/api/user/get
). Schlussfolgerung
Dieses Tutorial präsentierte Laravel Passport -Benutzerfreundlichkeit bei der Einrichtung eines OAuth2 -Servers. Für weitere Ressourcen für Laravel -Entwicklungen finden Sie den Envato -Markt.
Das obige ist der detaillierte Inhalt vonRichten Sie einen OAuth2 -Server mit dem Passport in Laravel ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!