Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Sicherheitsüberprüfung mit Laravel Sanctum
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 AuthentifizierungstreiberWährend des Einrichtungsvorgangs müssen Sie auswählen, dass Sie Sanctum als verwenden möchten der Standardauthentifizierungstreiber. Öffnen Sie die Dateiconfig/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 dieAuthenticate
-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:
Dieser Code verwendet das Merkmal HasApiTokens
im Benutzer
-Modell, um ein API-Token für den Benutzer zu generieren.
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!