Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Sicherheitsauthentifizierung mit Lumen Passport
PHP-Sicherheitsüberprüfung durch Lumen Passport
Bei der Entwicklung von Webanwendungen sind Benutzerauthentifizierung und Berechtigungskontrolle wichtige Aspekte, die nicht ignoriert werden dürfen. Um die Sicherheit der Anwendung zu gewährleisten, müssen wir eine Methode implementieren, um den Benutzer zu authentifizieren und bestimmten Benutzern unterschiedliche Berechtigungen zu gewähren. In der PHP-Entwicklung ist Lumen ein leichtes und effizientes Framework, das uns helfen kann, schnell Webanwendungen zu erstellen. Lumen Passport ist eine auf Laravel Passport basierende Lumen-Erweiterung, die uns bei der Implementierung einer einfachen und leistungsstarken Authentifizierung helfen kann.
In diesem Artikel erfahren Sie, wie Sie die PHP-Sicherheitsüberprüfung über Lumen Passport implementieren, um sicherzustellen, dass unsere Anwendungen nur autorisierten Benutzern Zugriff gewähren.
Zuerst müssen wir das Lumen Passport-Erweiterungspaket installieren. Geben Sie das Stammverzeichnis des Projekts im Terminal ein und führen Sie den folgenden Befehl aus:
composer require dusterio/lumen-passport
Nachdem die Installation abgeschlossen ist, müssen wir den Passport-Dienstanbieter registrieren. Öffnen Sie die Datei bootstrap/app.php
und fügen Sie den folgenden Code im Abschnitt Dienstanbieter registrieren
hinzu: bootstrap/app.php
文件,在 Register Service Providers
部分添加以下代码:
$app->register(DusterioLumenPassportPassportServiceProvider::class);
然后,在 bootstrap/app.php
的开头添加以下引用:
use DusterioLumenPassportLumenPassport;
接下来,我们需要生成密钥和数据库迁移文件。在终端中运行以下命令:
php artisan passport:keys php artisan passport:client --password php artisan migrate
生成密钥和数据库迁移文件后,我们可以开始配置身份验证。
首先,打开 config/auth.php
文件,将默认驱动从 token
更改为 passport
:
'defaults' => [ 'guard' => 'api', 'passwords' => 'users', 'provider' => 'users', 'hash' => false, ], // ... 'guards' => [ 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],
然后,打开 app/Providers/AuthServiceProvider.php
文件,并将 LaravelPassportPassport::routes()
方法添加到 boot()
方法中:
use LaravelPassportPassport; // ... public function boot() { $this->registerPolicies(); Passport::routes(); }
接下来,我们需要在用户模型中使用 Passport
。打开 app/User.php
文件,并在类顶部添加以下引用:
use LaravelPassportHasApiTokens;
然后,将 HasApiTokens
trait 添加到 User
类中:
use LaravelPassportHasApiTokens; class User extends Authenticatable { use HasApiTokens; // ... }
现在,我们已经完成了身份验证的配置。接下来,让我们来看一下如何在控制器中使用 Lumen Passport。
首先,我们需要在控制器中使用 Passport
。打开你的控制器文件,并在类顶部添加以下引用:
use LaravelPassportPassport;
然后,在需要进行身份验证的方法中调用 Passport::actingAs()
方法。此方法接受一个用户模型实例作为参数,用于模拟用户登录:
public function login() { $user = User::find(1); // 通过用户 ID 获取用户 Passport::actingAs($user); // ... }
当用户登录后,Lumen Passport 会生成一个访问令牌,我们可以使用该令牌来进行接口调用。在需要验证用户身份的方法中,我们可以使用 auth()->user()
来获取当前已登录的用户实例:
public function profile() { $user = auth()->user(); return response()->json([ 'user' => $user, ]); }
通过上述步骤,我们已经成功通过 Lumen Passport 实现了 PHP 安全验证。现在我们可以在应用程序中使用身份验证来保护特定的路由和功能,以确保只有授权的用户可以访问。
总结:
本文介绍了如何通过 Lumen Passport 实现 PHP 安全验证。我们首先安装了 Lumen Passport 扩展包,并生成了密钥和数据库迁移文件。然后,我们通过更改配置和使用 Passport 方法来配置身份验证。最后,在控制器中使用 Passport
rrreee
bootstrap/app.php Code> Fügen Sie am Anfang das folgende Zitat hinzu: 🎜rrreee🎜 Als nächstes müssen wir die Schlüssel- und Datenbankmigrationsdateien generieren. Führen Sie den folgenden Befehl im Terminal aus: 🎜rrreee🎜Nachdem wir die Schlüssel- und Datenbankmigrationsdateien generiert haben, können wir mit der Konfiguration der Authentifizierung beginnen. 🎜🎜Öffnen Sie zunächst die Datei <code>config/auth.php
und ändern Sie den Standardtreiber von token
in passport
: 🎜rrreee🎜Dann öffnen Sie die app/Providers/AuthServiceProvider.php
-Datei und fügen Sie die Methode LaravelPassportPassport::routes()
zur Methode boot()
hinzu: 🎜rrreee🎜Next , müssen wir Passport
im Benutzermodell verwenden. Öffnen Sie die Datei app/User.php
und fügen Sie oben in der Klasse den folgenden Verweis hinzu: 🎜rrreee🎜 Fügen Sie dann das Merkmal HasApiTokens
zum Benutzer class :🎜rrreee🎜Jetzt haben wir die Konfiguration der Authentifizierung abgeschlossen. Schauen wir uns als Nächstes an, wie man Lumen Passport in einem Controller verwendet. 🎜🎜Zuerst müssen wir <code>Passport
im Controller verwenden. Öffnen Sie Ihre Controller-Datei und fügen Sie die folgende Referenz am Anfang der Klasse hinzu: 🎜rrreee🎜 Rufen Sie dann die Methode Passport::actingAs()
in der Methode auf, die eine Authentifizierung erfordert. Diese Methode akzeptiert eine Benutzermodellinstanz als Parameter, um die Benutzeranmeldung zu simulieren: 🎜rrreee🎜 Wenn sich der Benutzer anmeldet, generiert Lumen Passport ein Zugriffstoken, das wir für Schnittstellenaufrufe verwenden können. Bei Methoden, die eine Benutzerauthentifizierung erfordern, können wir auth()->user()
verwenden, um die aktuell angemeldete Benutzerinstanz abzurufen: 🎜rrreee🎜Durch die oben genannten Schritte haben wir Lumen Passport erfolgreich bestanden PHP-Sicherheitsüberprüfung implementiert. Jetzt können wir die Authentifizierung in unserer Anwendung verwenden, um bestimmte Routen und Funktionen zu sichern und sicherzustellen, dass nur autorisierte Benutzer Zugriff haben. 🎜🎜Zusammenfassung: 🎜🎜In diesem Artikel wird erläutert, wie Sie die PHP-Sicherheitsüberprüfung über Lumen Passport implementieren. Wir haben zunächst das Lumen Passport-Erweiterungspaket installiert und die Schlüssel- und Datenbankmigrationsdateien generiert. Anschließend konfigurieren wir die Authentifizierung, indem wir die Konfiguration ändern und die Passport-Methode verwenden. Schließlich können wir mithilfe der Klasse Passport
im Controller die Benutzeranmeldung und die Generierung von Zugriffstokens implementieren. Auf diese einfache und leistungsstarke Weise können wir Benutzerauthentifizierung und Berechtigungskontrolle problemlos implementieren, um die Sicherheit unserer Anwendungen zu schützen. 🎜Das obige ist der detaillierte Inhalt vonPHP-Sicherheitsauthentifizierung mit Lumen Passport. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!