Laravel ist ein Webanwendungs-Framework, das mit der Programmiersprache PHP entwickelt wurde. Seine hervorragende Leistung ist auf die interne Integration einer großen Anzahl leistungsstarker Erweiterungspakete zurückzuführen. Dazu gehört auch die zugrunde liegende Implementierung von Token. Token sind eine häufig verwendete Authentifizierungsmethode in Webanwendungen und werden normalerweise verwendet, um APIs und Webdienste vor illegalem Zugriff zu schützen. In diesem Artikel stellen wir den Implementierungsmechanismus von Token in Laravel vor.
1. Das Konzept des Tokens
Token bezieht sich, wie der Name schon sagt, auf einen Token, eine Markierung, die eine Art Identitätsinformation oder Autorisierungsinformation darstellen kann. Es wird normalerweise vom Server generiert und an den Client ausgegeben. Nachdem der Client das Token erhalten hat, wird es lokal gespeichert und in nachfolgenden Anforderungen als Identifizierung der Authentifizierung oder Autorisierung dem Anforderungsheader oder den Anforderungsparametern hinzugefügt. Der Server kann feststellen, ob die Anfrage Authentifizierungs- oder Autorisierungsinformationen enthält, indem er prüft, ob das Token gültig ist.
Durch den Einsatz von Token können Webanwendungen wirksamer vor unbefugtem Zugriff geschützt werden, insbesondere bei APIs und Webdiensten sind Token unerlässlich.
2. Implementierung des Laravel-Tokens
Als hervorragendes Webanwendungs-Framework bietet Laravel Token-Unterstützung in seiner integrierten Auth-Funktion. In Laravel wird Token mithilfe des Laravel Sanctum-Erweiterungspakets implementiert.
2.1 Laravel Sanctum
Laravel Sanctum ist ein leichtes Authentifizierungspaket, das eine API-Authentifizierung für Laravel-Anwendungen basierend auf API-Schlüsseln oder Tokens bereitstellen kann, sodass Anwendungen in zustandslosen Umgebungen besser laufen können. wie SPA-Anwendungen, Single-Page-Anwendungen und mobile Anwendungen. Laravel Sanctum bietet die folgenden Funktionen:
In Laravel Sanctum ähnelt das Token-Implementierungsprinzip dem Sitzungsimplementierungsprinzip. Wenn der Client in der Anfrage eine Anfrage an den Server stellt, wird das Token als Anfrageparameter oder als Autorisierungsfeld im Header an den Server gesendet. Der Server prüft, ob das Token gültig ist und erteilt innerhalb des Gültigkeitszeitraums die Erlaubnis für den angeforderten Vorgang oder gibt eine Fehlermeldung zurück. Der Implementierungsprozess von Token ist wie folgt:
Token erstellen: Wenn sich ein Benutzer anmeldet, generiert Sanctum ein zufälliges Token für den Benutzer und speichert das Token in der Hintergrunddatenbank 🎜 #composer require laravel/sanctum
Nachdem die Installation abgeschlossen ist, müssen Sie die folgende Konfiguration zur Datei config/app.php hinzufügen:
'providers' => [ // Other service providers... Laravel\Sanctum\SanctumServiceProvider::class, ],
3.2 Release-Konfiguration
Nach dem Wenn die Installation abgeschlossen ist, müssen Sie den folgenden Befehl ausführen, um die Konfigurationsdatei von Sanctum zu veröffentlichen:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
3.3 Middleware konfigurieren
Bei Verwendung von Sanctum müssen Sie Middleware hinzufügen entsprechende Route. In Laravel ist eine API-Authentifizierungs-Middleware integriert, die direkt aufgerufen werden kann.
3.4 Token erstellen
Nach dem Anmelden können Sie mit dem folgenden Code ein Token für den aktuellen Benutzer erstellen:
use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\ValidationException; use App\Models\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; // 创建Token Route::post('/api/token/create', function (Request $request) { $request->validate([ 'email' => 'required|email', 'password' => 'required', ]); $user = User::where('email', $request->email)->first(); if (! $user || ! Hash::check($request->password, $user->password)) { throw ValidationException::withMessages([ 'email' => ['The provided credentials are incorrect.'], ]); } return $user->createToken($request->header('User-Agent'))->plainTextToken; });
Im Obigen Code können Sie sehen, dass beim Erstellen eines Tokens der User-Agent der Maschine als zusätzlicher Parameter verwendet wird. Der User-Agent ist hier ein HTTP-Header, der browser- oder anwendungsbezogene Informationen aufzeichnet. Diese Informationen werden als Teil des Tokens verwendet, sodass das Token, sobald es gestohlen oder in böswilliger Absicht verwendet wird, leicht entdeckt und widerrufen werden kann.
3.5 Token widerrufen
Sobald der erstellte Token gestohlen oder ungültig ist, können Sie ihn mit dem folgenden Code widerrufen:
Auth::user()->tokens()->delete();
3.6 Verifizierungserweiterung
Sanctum bietet auch eine gute Authentifizierungserweiterung, die die Zugriffskontrolle erleichtern kann. Der Code lautet wie folgt:
use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\ValidationException; use App\Models\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { use HasApiTokens, Notifiable; }
Nachdem wir den obigen Code verwendet haben, können wir die Dose-Schnittstelle verwenden Das Benutzermodell für den Zugriff. Der Code lautet wie folgt:
$request->user()->can('update', $post);
Im obigen Code kann anhand der Rolle, Berechtigungen usw. des aktuellen Benutzers ermittelt werden, ob er das Recht hat, Aktualisierungsvorgänge durchzuführen Richtlinien. Es ist zu beachten, dass Benutzer ihre eigene Zugriffskontrolllogik korrekt implementieren müssen.
4. Zusammenfassung
In diesem Artikel haben wir den zugrunde liegenden Implementierungsmechanismus von Token in Laravel vorgestellt, insbesondere die Art und Weise, das Sanctum-Erweiterungspaket zu verwenden. Sanctum bietet eine praktische und benutzerfreundliche API, die schnell in Anwendungen integriert werden kann und die Anwendungssicherheit verbessert. Die Verwendung, Erstellung, Sperrung und Verwaltung von Token sowie die Zugriffskontrolle werden ausführlich erläutert.
In der heutigen Internetwelt, mit der weit verbreiteten Anwendung von APIs und Webdiensten, wird Token als Authentifizierungsmethode in vielen Anwendungen immer häufiger eingesetzt. Das Laravel-Framework bietet einen guten Token-Implementierungsmechanismus, der Webanwendungen besser vor illegalem Zugriff schützen kann.
Das obige ist der detaillierte Inhalt vonEin Artikel, der den Implementierungsmechanismus von Token in Laravel vorstellt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!