Maison >développement back-end >tutoriel php >Journée de création d'API avec Laravel Sanctum
Laravel Sanctum : une approche rationalisée de l'authentification API dans les applications modernes. Les API sont cruciales pour la communication inter-plateforme, et Sanctum propose une solution légère pour les sécuriser, favorisant des applications robustes et évolutives. Ce guide explore la configuration, les fonctionnalités et les cas d'utilisation de Sanctum, y compris les SPA et l'authentification par jeton.
Laravel Sanctum simplifie l'authentification API, en fournissant deux fonctionnalités clés :
Contrairement aux solutions plus complexes, la nature légère et la configuration simple de Sanctum le rendent parfait pour les applications sans exigences OAuth.
Installer Sanctum à l'aide de Composer :
<code class="language-bash">composer require laravel/sanctum</code>
Publiez le fichier de configuration de Sanctum :
<code class="language-bash">php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"</code>
Cela génère config/sanctum.php
, permettant la personnalisation des paramètres de Sanctum.
Sanctum utilise une table personal_access_tokens
. Créez ce tableau :
<code class="language-bash">php artisan migrate</code>
Intégrez le middleware de Sanctum dans votre api
groupe middleware au sein de app/Http/Kernel.php
:
<code class="language-php">'api' => [ \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, 'throttle:api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ],</code>
Sécurisez les itinéraires dans routes/api.php
à l'aide du auth:sanctum
middleware :
<code class="language-php">use Illuminate\Support\Facades\Route; Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); });</code>
Générez des jetons d'accès personnels à l'aide de la méthode createToken
:
<code class="language-php">use App\Models\User; use Illuminate\Http\Request; Route::post('/login', function (Request $request) { $user = User::where('email', $request->email)->first(); if (! $user || ! Hash::check($request->password, $user->password)) { return response()->json(['message' => 'Invalid credentials'], 401); } return $user->createToken('auth_token')->plainTextToken; });</code>
Révoquer le jeton d'un utilisateur pour la déconnexion :
<code class="language-php">Route::post('/logout', function (Request $request) { $request->user()->tokens()->delete(); return response()->json(['message' => 'Logged out successfully']); });</code>
Sanctum exploite l'authentification basée sur la session pour les SPA.
Assurez-vous que le EnsureFrontendRequestsAreStateful
middleware est correctement configuré au sein du api
groupe middleware.
Envoyez des jetons CSRF avec des requêtes AJAX authentifiées depuis votre SPA :
<code class="language-bash">composer require laravel/sanctum</code>
Laravel Sanctum offre un moyen convivial et efficace de sécuriser les API pour les applications modernes. Sa conception légère et son API flexible simplifient l'authentification pour les développeurs, ce qui en fait un outil précieux pour les SPA et l'accès aux API basés sur des jetons. Expérimentez avec Sanctum dans vos projets pour apprécier pleinement ses capacités.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!