Mit der Popularität des mobilen Internets erfordern immer mehr Anwendungen eine Authentifizierung und Autorisierung der Benutzer. OAuth2 ist ein beliebtes Authentifizierungs- und Autorisierungsframework, das Anwendungen einen standardisierten Mechanismus zur Implementierung dieser Funktionen bietet. Laravel Passport ist eine benutzerfreundliche, sichere und sofort einsatzbereite OAuth2-Serverimplementierung, die PHP-Entwicklern leistungsstarke Tools zum Erstellen von OAuth2-Authentifizierung und -Autorisierung bietet. In diesem Artikel wird erläutert, wie Sie Laravel Passport verwenden, um PHP-Entwicklern dabei zu helfen, die Entwicklung und Anwendung von OAuth2 besser zu beherrschen.
Laravel Passport ist eine vollständige OAuth2-Serverimplementierung, die einfach zu installierende, benutzerfreundliche, leicht erweiterbare und zuverlässige Authentifizierungs- und Autorisierungsmechanismen bietet. Passport unterstützt außerdem die Token-Signatur und -Verifizierung mit JSON Web Token (JWT) und bietet supereinfache Authentifizierungsfunktionen in RESTful-APIs. Um mit Laravel Passport einen OAuth2-Dienstanbieter zu entwickeln, müssen wir natürlich zunächst das theoretische Wissen und die damit verbundenen Grundkenntnisse über OAuth2 beherrschen.
OAuth2 ist ein Autorisierungsframework, das es Clientanwendungen ermöglicht, über einen Autorisierungsserver auf von Benutzern autorisierte Ressourcen zuzugreifen. OAuth2 ist als HTTP-basiertes Protokoll konzipiert, das es Benutzern ermöglicht, Clientanwendungen von Drittanbietern für einen bestimmten Ressourcenserver (z. B. einen Bildserver oder einen Dateiserver) zu autorisieren, auf ihre auf einem völlig anderen Server gespeicherten Informationen zuzugreifen. Zu den Kernkonzepten des OAuth2-Protokolls gehören:
Die OAuth2-Spezifikation definiert mehrere Autorisierungstypen für Entwickler. Diese Autorisierungstypen haben unterschiedliche Verwendungsszenarien, wie zum Beispiel:
Nachdem wir nun die Grundkenntnisse von OAuth2 und eine Einführung in Laravel Passport verstanden haben, treten wir in die praktische Phase ein und beginnen mit der Verwendung von Laravel Passport zur Implementierung des OAuth2-Dienstanbieters.
3.1. Laravel Passport installieren
Wir können Composer verwenden, um Laravel Passport zu installieren, ein Terminal oder eine Befehlszeilenaufforderung öffnen und den folgenden Befehl eingeben:
composer require laravel/passport
Nach der Installation von Laravel Passport müssen wir den Befehl ausführen, um die Datenbank zu migrieren :
php artisan migrate
3.2. Konfigurieren von OAuth2
Fordern Sie in Laravel Passport Zugriffstoken an und erhalten Sie Ressourcen über den „Client“. Bevor wir beginnen, müssen wir einige Clients erstellen. Wir können Passports eigenen Befehl „passport:client“ verwenden, um einen Client zu erstellen:
php artisan passport:client
Dieser Befehl zeigt die erstellte Client-ID und den geheimen Schlüssel in der Konsole sowie den Client-Typ (öffentlich oder vertraulich) an, der vom Client bestimmt wird Typ Wie das Zugriffstoken generiert wird.
Als nächstes konfigurieren Sie Guards und Provider in der Datei config/auth.php mit Passport als Autorisierungsanbieter:
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ] 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => AppModelsUser::class, ], ],
Im obigen Codeausschnitt haben wir nur den „Gatekeeper“ namens api aktiviert und ihn als Passport-Gatekeeper angegeben (' Fahrer' => 'Reisepass').
Nachdem die Konfiguration abgeschlossen ist, müssen wir den Passport-Schlüssel neu generieren und den folgenden Befehl ausführen:
php artisan passport:keys
Nachdem dieser Befehl ausgeführt wurde, hat unser OAuth2-Dienstanbieter die Konfiguration abgeschlossen und wir können dann das OAuth2-Zugriffstoken in Laravel Card erstellen .
3.3. OAuth2-Zugriffstoken erstellen
Bei Verwendung von OAuth2 müssen wir ein Zugriffstoken erstellen, das zum Schutz von API-Endpunkten verwendet wird. In Laravel Passort ist die Generierung des OAuth2-Zugriffstokens sehr einfach. Wir können Code dafür in der Route, die geschützt werden muss, als Beispiel verwenden:
Route::get('/user', function (Request $request) { return $request->user(); })->middleware('auth:api');
Diese Route verwendet die auth:api-Middleware, die das Zugriffstoken prüft und die Anfrage dem Benutzer zuweist.
Wenn der OAuth2-Dienstanbieter und das Zugriffstoken konfiguriert wurden, können wir den Test über Postman durchführen. Wir können Postman verwenden, um eine GET-Anfrage zu stellen, um abzufragen, ob der Benutzer ein Zugriffstoken erhalten oder das Zugriffstoken verwenden kann, um eine geschützte Route zu erhalten. In Postman benötigen Benutzer eine Authentifizierung, um auf geschützte Routen zugreifen zu können. Hier ist ein Beispielcode:
GET http://localhost:8000/api/user Authorization : Bearer {access token}
In diesem Beispielcode senden wir eine GET-Anfrage und authentifizieren uns mithilfe eines OAuth2-Zugriffstokens. Wenn alles gut geht, gibt die API die angeforderten geschützten Informationen zurück.
In diesem Artikel wurde die Verwendung von Laravel Passport vorgestellt. Jetzt beherrschen Sie die Methode zur Verwendung der OAuth2-Spezifikation und von Passport, um sichere und effiziente Authentifizierungs- und Autorisierungsmechanismen in PHP-Anwendungen zu erstellen. Die Verwendung von Passport ist für Entwickler, die RESTful-APIs und mobile Anwendungen in Laravel erstellen, sehr nützlich, da es die Entwicklungskomplexität reduziert und die Entwicklungsgeschwindigkeit erhöht. Ich hoffe, dieser Artikel kann PHP-Entwicklern als Referenz und Hilfe dienen.
Das obige ist der detaillierte Inhalt vonPHP-Entwicklung: Implementierung eines OAuth2-Dienstanbieters mit Laravel Passport. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!