Qu’est-ce que Sanctum
Laravel Sanctum est un package d’authentification léger destiné aux SPA, applications mobiles et APIs simples. Sans connaître OAuth, vous pouvez émettre et gérer plusieurs tokens API par utilisateur. Deux problèmes résolus :Utilisez le mode SPA pour vos SPA maison, et les tokens API pour mobile ou clients tiers. Vous pouvez utiliser un seul mode.
Sanctum vs Passport
Choisissez Passport si vous devez être un fournisseur OAuth2. Sinon, Sanctum suffit à la plupart des applications.
Installation et configuration
Installation
install:api configure Sanctum.
- installe
laravel/sanctum - publie la migration
personal_access_tokens - exécute la migration
Ajouter le trait HasApiTokens
Ajoutez le trait au modèle User.
$user->createToken(), $user->tokens, etc.
Authentification par token API
Flux
Émission d’un token
createToken() génère un token. plainTextToken contient la version en clair. Elle n’est pas persistée : renvoyez-la immédiatement à l’utilisateur.
Portées (abilities)
Restreignez les actions autorisées par le token via des abilities.Vérifier via middleware
Alias dansbootstrap/app.php :
Expiration
Par défaut, pas d’expiration. Réglezexpiration (minutes) dans config/sanctum.php.
Révocation
Authentification SPA
Basée sur les cookies de session — pas de gestion de token. Idéal pour votre frontend Vue/React/Next.js maison.Activer le middleware
Dansbootstrap/app.php :
Domaines first-party
Dansconfig/sanctum.php, réglez stateful.
CORS
Pour un autre sous-domaine :config/cors.php :
Flux d’authentification
1
Récupérer le cookie CSRF
Avant de se connecter, initialisez CSRF.
2
Envoyer la requête de login
3
Requêtes authentifiées
Les requêtes suivantes utilisent le cookie de session.
Protéger les routes
auth:sanctum retourne 401 Unauthorized pour les requêtes non authentifiées. Ce middleware unique gère à la fois tokens API et SPA.
Exemple : login API et renvoi d’un token
Cas mobile.1
Endpoint de login
2
Routes authentifiées
3
Requêtes client
Tests
UtilisezSanctum::actingAs() pour authentifier avec des abilities.
- Pest
- PHPUnit
Récapitulatif
Installation
Installation
HasApiTokens :API fréquente
API fréquente
Choix API vs SPA
Choix API vs SPA
- Tokens API : mobile, intégrations tierces, CLI — clients sans session.
- SPA : Vue/React/Next.js maison sur le même domaine — plus sûr, sans gestion de token.