Maison >développement back-end >tutoriel php >Journée de création d'API avec Laravel Sanctum

Journée de création d'API avec Laravel Sanctum

Barbara Streisand
Barbara Streisandoriginal
2025-01-09 14:05:41871parcourir

Day Building APIs with 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.

Comprendre le sanctuaire de Laravel

Laravel Sanctum simplifie l'authentification API, en fournissant deux fonctionnalités clés :

  • Authentification basée sur des jetons : Idéale pour les API accessibles par des services externes ou des applications mobiles.
  • Authentification basée sur la session : Idéale pour les applications à page unique (SPA) où le frontend et le backend partagent le même domaine.

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.

Implémentation de Laravel Sanctum

Étape 1 : Installation

Installer Sanctum à l'aide de Composer :

<code class="language-bash">composer require laravel/sanctum</code>

Étape 2 : Configuration de la publication

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.

Étape 3 : Migration de la base de données

Sanctum utilise une table personal_access_tokens. Créez ce tableau :

<code class="language-bash">php artisan migrate</code>

Étape 4 : Configuration du middleware

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>

Authentification basée sur des jetons en pratique

Étape 1 : Protection de l'itinéraire

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>

Étape 2 : Génération de jetons

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>

Étape 3 : Révocation du jeton

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>

Intégration d'application monopage (SPA)

Sanctum exploite l'authentification basée sur la session pour les SPA.

Étape 1 : Protection CSRF

Assurez-vous que le EnsureFrontendRequestsAreStateful middleware est correctement configuré au sein du api groupe middleware.

Étape 2 : Configuration du frontend

Envoyez des jetons CSRF avec des requêtes AJAX authentifiées depuis votre SPA :

<code class="language-bash">composer require laravel/sanctum</code>

Bonnes pratiques de sécurité

  • Sécurité des jetons : Stockez les jetons en toute sécurité (par exemple, dans les cookies HTTP uniquement) et empêchez toute exposition côté client.
  • Expiration des jetons : Implémentez l'expiration des jetons pour atténuer les risques associés aux jetons divulgués.
  • Limitation de la portée : Définissez des portées spécifiques pour les jetons afin de contrôler leurs autorisations.

Conclusion

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn