Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Entwicklung: Implementierung eines OAuth2-Dienstanbieters mit Laravel Passport

PHP-Entwicklung: Implementierung eines OAuth2-Dienstanbieters mit Laravel Passport

WBOY
Freigeben: 2023-06-15 16:34:02
Original
1581 Leute haben es durchsucht

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.

  1. Einführung in Laravel Passport

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.

  1. OAuth2-Grundlagen

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:

  • Client: Eine Anwendung, die auf Ressourcen (z. B. Dateien) auf dem Ressourcenserver zugreifen muss.
  • Ressourcenbesitzer: Ein Benutzer, der Clients den Zugriff auf ihre Ressourcen autorisieren kann.
  • Autorisierungsserver: Der Autorisierungsserver authentifiziert den Client und stellt bei erfolgreicher Authentifizierung ein Zugriffstoken an den Client aus.
  • Ressourcenserver: Ein Server, der Clients geschützte Ressourcen bereitstellt.

Die OAuth2-Spezifikation definiert mehrere Autorisierungstypen für Entwickler. Diese Autorisierungstypen haben unterschiedliche Verwendungsszenarien, wie zum Beispiel:

  • Autorisierungscode: Der am häufigsten verwendete Autorisierungstyp, an den der Client den Benutzer mithilfe des Autorisierungscodes weiterleitet Der Autorisierungsserver gibt einen Autorisierungscode zurück und der Client verwendet den Autorisierungscode, um ein Zugriffstoken anzufordern.
  • Implizite Autorisierung: Wird verwendet, um dem Browser-Client ein Zugriffstoken bereitzustellen, ohne dass eine Autorisierungscodeübertragung zwischen Servern erforderlich ist, wenn das Token direkt in der Adressleiste des Browser-Clients platziert wird.
  • Client-Autorisierung: Wird verwendet, um den Client für den Zugriff auf den Ressourcenserver zu autorisieren. Derzeit erfordert der Autorisierungsserver keine Benutzerbeteiligung.
  1. OAuth2-Dienstanbieter für die Implementierung von Laravel Passport

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 dem Login kopieren

Nach der Installation von Laravel Passport müssen wir den Befehl ausführen, um die Datenbank zu migrieren :

php artisan migrate
Nach dem Login kopieren

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
Nach dem Login kopieren

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,
    ],
],
Nach dem Login kopieren

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
Nach dem Login kopieren

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');
Nach dem Login kopieren

Diese Route verwendet die auth:api-Middleware, die das Zugriffstoken prüft und die Anfrage dem Benutzer zuweist.

  1. Testen von OAuth2 mit Postman

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}
Nach dem Login kopieren

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.

  1. Zusammenfassung

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!

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