Laravel ist ein beliebtes PHP-Webentwicklungs-Framework, das viele leistungsstarke Funktionen und Tools bietet, um die Entwicklung und Wartung von Webanwendungen zu vereinfachen. Laravel Sanctum ist ein Plugin für das Laravel-Framework, das API-Authentifizierungs- und Autorisierungsfunktionen bietet, um Ihre API-Endpunkte einfach vor unbefugtem Zugriff zu schützen.
In diesem Artikel erfahren Sie, wie Sie die API-Authentifizierung und -Autorisierung mit Laravel Sanctum implementieren.
1. Was ist Laravel Sanctum?
Laravel Sanctum ist ein leichtes Authentifizierungspaket, das einfache, aber leistungsstarke API-Authentifizierungs- und Autorisierungsfunktionen bietet. Es basiert auf Laravel-Middleware und HTTP-Authentifizierung und ermöglicht es uns, Authentifizierungstokens sicher an API-Anfragen anzuhängen.
Laravel Sanctum unterstützt zwei Authentifizierungsmethoden: Cookie-basierte Authentifizierung und Token-basierte Authentifizierung. Bei der Cookie-basierten Authentifizierung wird die Laravel-Middleware verwendet, um zu überprüfen, ob in der Anfrage ein gültiges Authentifizierungs-Cookie vorhanden ist. Eine weitere Möglichkeit, das Token in der Header-Klasse zu überprüfen und zu prüfen, ob es gültig ist.
2. Installieren Sie Laravel Sanctum
Bevor wir beginnen, müssen wir zuerst Laravel Sanctum installieren. Laravel Sanctum kann einfach mit dem Composer-Paketmanager installiert werden:
composer require laravel/sanctum
Natürlich kann es auch manuell installiert werden, indem die folgenden Anforderungen in die Datei „composer.json“ hinzugefügt werden:
{ "require": { "laravel/sanctum": "^2.9" } }
Wenn Sie fertig sind, führen Sie den folgenden Befehl aus, um Laravel zu veröffentlichen Sanctum-Konfigurationsdatei und Datenbankmigrationsdatei:
php artisan vendor:publish --tag=sanctum-config php artisan vendor:publish --tag=sanctum-migrations php artisan migrate
3. Laravel Sanctum konfigurieren
Ändern Sie die Datei app/Http/kernel.php und fügen Sie die Sanctum-Middleware hinzu:
// app/Http/Kernel.php protected $middleware = [ // ... LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class, ]; protected $middlewareGroups = [ 'web' => [ // ... ], 'api' => [ LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class, 'throttle:api', IlluminateRoutingMiddlewareSubstituteBindings::class, ], ];
Dadurch wird sichergestellt, dass die Cookie-basierte Authentifizierung von Sanctum bei jeder Anfrage verwendet werden kann.
Öffnen Sie die Datei config/auth.php, suchen Sie nach Standardeinstellungen und Guards und konfigurieren Sie sie für die Verwendung von Sancttum.
// config/auth.php 'defaults' => [ 'guard' => 'api', 'passwords' => 'users', ], 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'sanctum', 'provider' => 'users', 'hash' => false, ], ],
Dadurch können wir Sanctum für die tokenbasierte Authentifizierung verwenden.
Wenn Sie eine neue Version von Laravel verwenden, müssen Sie keinen Anbieter hinzufügen. Wenn Sie eine ältere Version verwenden, öffnen Sie bitte die Datei config/app.php und fügen Sie die folgende Zeile im Provider-Array hinzu:
LaravelSanctumSanctumServiceProvider::class,
IV Jetzt, da wir Laravel Sanctum konfiguriert haben, erfahren wir mehr darüber weiter So erstellen Sie mit Sanctum Autorisierungstoken.
Nachdem sich der Benutzer angemeldet hat, erstellen Sie in der Benutzertabelle ein API-Token für den Benutzer.public function createToken(Request $request) { $user = Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')]); if($user) { $token = $user->createToken('API Token')->plainTextToken; return response()->json([ 'token' => $token, ]); } else { return response()->json([ 'message' => 'Invalid credentials', ], 401); } }
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
Nach dem Erstellen des Autorisierungstokens können wir Sanctum verwenden, um den API-Endpunkt vor unbefugtem Zugriff zu schützen. Wir können die Routing-Middleware Laravel verwenden, um das Authentifizierungstoken zu überprüfen und unbefugten Zugriff zu verweigern.
Definieren Sie zunächst die geschützte API-Route in der Datei api.php.// routes/api.php Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); });
php artisan serve
6. Ende
Laravel Sanctum ist eine leistungsstarke und benutzerfreundliche Authentifizierungs- und Autorisierungslösung, die Authentifizierung und Autorisierung problemlos in Laravel-Webanwendungen und Web-APIs implementieren kann. Es schützt Ihre API-Endpunkte problemlos vor unbefugtem Zugriff und ermöglicht Ihnen die einfache Steuerung, welche Benutzer auf welche API-Endpunkte zugreifen können. In diesem Artikel haben wir gelernt, wie man Laravel Sanctum installiert und konfiguriert und wie man damit Autorisierungstoken erstellt und API-Authentifizierung und -Autorisierung implementiert.
Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie implementiert man API-Authentifizierung und -Autorisierung mit Laravel Sanctum?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!