Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Sicherheitsüberprüfung mit Laravel Sanctum

PHP-Sicherheitsüberprüfung mit Laravel Sanctum

王林
王林Original
2023-07-26 17:58:57987Durchsuche

PHP-Sicherheitsüberprüfung mit Laravel Sanctum

Übersicht:
In der modernen Webentwicklung ist die Sicherheitsüberprüfung ein entscheidender Aspekt. Laravel Sanctum ist ein einfacher und flexibler Authentifizierungsschutz von Laravel, der für Front-End- und Back-End-Trennungsanwendungen verwendet werden kann. In diesem Artikel wird erläutert, wie Sie mit Laravel Sanctum die PHP-Sicherheitsüberprüfung implementieren, und relevante Codebeispiele bereitstellen.

Schritt 1: Laravel Sanctum installieren

Installieren Sie zunächst das Sanctum-Erweiterungspaket im Laravel-Projekt. Sie können Composer verwenden, um den folgenden Befehl zu installieren und auszuführen:

composer require laravel/sanctum

Schritt 2: Sanctum konfigurieren

Nach Abschluss der Installation muss Sanctum konfiguriert werden. Öffnen Sie die Datei config/app.php im Stammverzeichnis des Projekts, suchen Sie das Array providers und fügen Sie den folgenden Code hinzu: config/app.php 文件,找到 providers 数组,并添加以下代码:

'providers' => [

    // ...

    LaravelSanctumSanctumServiceProvider::class,

],

然后,运行以下命令来发布 Sanctum 的配置文件和数据库迁移文件:

php artisan vendor:publish --provider="LaravelSanctumSanctumServiceProvider"

接着,运行以下命令来执行数据库迁移:

php artisan migrate

步骤三:配置身份验证驱动程序

在设置过程中,需要选择使用 Sanctum 作为默认的身份验证驱动程序。打开 config/auth.php 文件,找到 guards 数组,并将默认的 guard 设置为 sanctum

'defaults' => [
    'guard' => 'sanctum',
    // ...
],

步骤四:启用 Sanctum 中间件

Sanctum 需要使用自己的中间件来处理身份验证。为了启用 Sanctum,需要将 Authenticate 中间件替换为 Sanctum 提供的中间件。打开 app/Http/Kernel.php 文件,将以下代码添加到 $routeMiddleware 数组中:

protected $routeMiddleware = [
    // ...
    'auth' => LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class,
];

步骤五:生成 Sanctum API Token

Sanctum 提供了 API Token 来进行身份验证。API Token 可以通过以下代码来生成:

use LaravelSanctumHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
}

该代码在 User Model 中使用了 HasApiTokens

Route::middleware('auth:sanctum')->group(function () {
    // 这里是需要保护的路由
});

Führen Sie dann zum Veröffentlichen den folgenden Befehl aus die Sanctum-Konfigurationsdatei und die Datenbankmigrationsdatei:

use IlluminateHttpRequest;

Route::post('/login', function (Request $request) {
    $credentials = $request->only('email', 'password');
    
    if (Auth::attempt($credentials)) {
        $user = Auth::user();
        $token = $user->createToken('api')->plainTextToken;

        return response()->json([
            'user' => $user,
            'token' => $token,
        ]);
    } else {
        return response()->json(['error' => 'Unauthorized'], 401);
    }
});

Führen Sie als Nächstes den folgenden Befehl aus, um die Datenbankmigration durchzuführen:

rrreee

Schritt 3: Konfigurieren Sie den Authentifizierungstreiber

Während des Einrichtungsvorgangs müssen Sie auswählen, dass Sie Sanctum als verwenden möchten der Standardauthentifizierungstreiber. Öffnen Sie die Datei config/auth.php, suchen Sie das Array guards und setzen Sie den Standardschutz auf sanctum:

rrreee

Schritt 4: Aktivieren Sanctum Middleware

Sanctum muss seine eigene Middleware verwenden, um die Authentifizierung durchzuführen. Um Sanctum zu aktivieren, muss die Authenticate-Middleware durch die von Sanctum bereitgestellte Middleware ersetzt werden. Öffnen Sie die Datei app/Http/Kernel.php und fügen Sie den folgenden Code zum Array $routeMiddleware hinzu:

rrreee

Schritt 5: Sanctum API-Token generieren


Sanctum stellt API bereit Token zur Authentifizierung. Ein API-Token kann mit dem folgenden Code generiert werden:

rrreee

Dieser Code verwendet das Merkmal HasApiTokens im Benutzer-Modell, um ein API-Token für den Benutzer zu generieren.

    Schritt 6: Routen schützen
  • Nachdem Sie Sanctum zur Sicherheitsüberprüfung verwendet haben, können Sie den folgenden Code verwenden, um Routen zu schützen, die eine Authentifizierung erfordern:
rrreee🎜Der obige Code wendet die Sanctum-Middleware an, um das API-Token des Benutzers zu überprüfen. 🎜🎜Schritt 7: Authentifizierung🎜🎜Wenn der Benutzer eine Anfrage über die Front-End-Anwendung sendet, kann der folgende Code zur Authentifizierung verwendet werden: 🎜rrreee🎜Der obige Code authentifiziert sich über die vom Benutzer angegebene E-Mail-Adresse und das Passwort und kehrt zurück eine JSON-Antwort mit Benutzerinformationen und API-Token. 🎜🎜Zusammenfassung: 🎜Mit Laravel Sanctum können wir die Sicherheitsüberprüfung von PHP-Anwendungen einfach implementieren. In diesem Artikel wird die Installation und Konfiguration von Laravel Sanctum erläutert und entsprechende Codebeispiele bereitgestellt. Ich hoffe, dass dieser Artikel für Anfänger hilfreich sein und mehr Menschen dazu inspirieren kann, Laravel Sanctum zu lernen und zu verwenden. 🎜🎜Referenzlink: 🎜🎜🎜[Laravel Sanctum GitHub offizielle Dokumentation](https://github.com/laravel/sanctum)🎜🎜

Das obige ist der detaillierte Inhalt vonPHP-Sicherheitsüberprüfung mit Laravel Sanctum. 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