LogExCollab

Développement Web Posté le 31/07/2026 à 12:44

Comment sécuriser une API Laravel avec Sanctum ?

16 3
RR
Auteur
Ruth Achieng

Je développe le backend de mon app mobile et je veux protéger mes routes avec des tokens. Quelles sont les étapes essentielles et les pièges à éviter ?


Tags : #Laravel #Sanctum #API REST #Sécurité

3 commentaires

AA
Assistant LOGEXCOLLAB 🤖 IA
Posté le 31/07/2026 à 12:59
0 j'aime
✅ Solution
🤖 Réponse IA — ✅ validée par la communauté Une réponse humaine reste prioritaire.

Bonjour ! Comme le soulignent souvent les retours d'expérience de la communauté, la meilleure approche pour débuter est de commencer simple et d'itérer sans sur-optimiser dès le début [source 1].

Voici les étapes clés pour configurer Laravel Sanctum pour votre application mobile, ainsi que les pièges à éviter.

1. Étapes essentielles

  1. Installation et publication Exécutez les commandes suivantes dans votre projet Laravel :

    composer require laravel/sanctum
    php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
    php artisan migrate
    
  2. Ajout du Trait au modèle User Dans le fichier app/Models/User.php, ajoutez le trait HasApiTokens :

    use Laravel\Sanctum\HasApiTokens;
    
    class User extends Authenticatable
    {
        use HasApiTokens, HasFactory, Notifiable;
    }
    
  3. Émission du token lors du Login Dans votre contrôleur d'authentification, après avoir validé l'email et le mot de passe de l'utilisateur :

    // Générer un token API pour le mobile
    $token = $user->createToken('mobile-app')->plainTextToken;
    
    return response()->json([
        'access_token' => $token,
        'token_type' => 'Bearer',
    ]);
    
  4. Protection de vos routes API Dans routes/api.php, protégez vos routes avec le middleware auth:sanctum :

    Route::middleware('auth:sanctum')->group(function () {
        Route::get('/user', [UserController::class, 'show']);
        // Vos autres routes protégées
    });
    
  5. Déconnexion (Révocation du token) Lors de la déconnexion, supprimez le token actif :

    $request->user()->currentAccessToken()->delete();
    

2. Pièges à éviter et bonnes pratiques (contexte mobile)

  • Ne pas confondre SPA et Mobile : Pour une application mobile, utilisez exclusivement des Bearer Tokens envoyés dans le header HTTP (Authorization: Bearer <token>). La méthode par cookies/cookies de session de Sanctum est réservée aux applications Web (SPA).
  • Stockage sécurisé sur le téléphone : Côté application mobile, ne stockez jamais le token en clair (évitez le simple LocalStorage ou SharedPreferences basique). Utilisez des solutions chiffrées comme Keychain (iOS) ou EncryptedSharedPreferences / Keystore (Android).
  • Gestion de l'expiration : Par défaut, les tokens Sanctum n'expirent pas. Il est fortement recommandé de configurer une durée de vie dans config/sanctum.php (champ 'expiration') pour limiter les risques en cas de vol de téléphone.
  • Gestion de la connectivité réseau : Sur mobile (particulièrement dans des zones à couverture réseau instable), assurez-vous que votre application mobile intercepte correctement les erreurs 401 Unauthenticated pour rediriger proprement l'utilisateur vers l'écran de connexion sans faire crasher l'application.

N'hésite pas à demander si tu as besoin d'aide sur une partie spécifique !

Sources : comment #6 comment #14 comment #23 comment #44 comment #62
NN
Ngozi Eze
Posté le 31/07/2026 à 12:44
1 j'aime

Bonne question. De mon expérience, commence simple puis itère : ne sur-optimise pas trop tôt.

AA
Amina Traoré
Posté le 31/07/2026 à 12:44
0 j'aime

J'ai rencontré le même besoin. La documentation officielle est étonnamment complète sur ce point, jette-y un œil.

Laisser un commentaire