Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Sicherheitsauthentifizierung mit Lumen Passport

PHP-Sicherheitsauthentifizierung mit Lumen Passport

WBOY
WBOYOriginal
2023-07-25 13:34:451699Durchsuche

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 方法来配置身份验证。最后,在控制器中使用 Passportrrreee

Dann in 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!

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