Cos’è Sanctum
Laravel Sanctum è un pacchetto di autenticazione leggero per SPA, applicazioni mobili e API semplici. Senza conoscenze approfondite di OAuth puoi emettere e gestire più API token per utente. Sanctum risolve due problemi.Per API chiamate dalla tua SPA usa l’autenticazione SPA. Per app mobili o integrazioni terze usa l’autenticazione con API token. Puoi usarne solo una.
Quando usare Passport
Se devi essere un provider OAuth2 per servizi esterni, scegli Passport; per il resto Sanctum è sufficiente.
Installazione e configurazione
Installazione
laravel/sanctum, pubblica la migration di personal_access_tokens ed esegue le migration.
Trait HasApiTokens
Aggiungi il trait aUser.
$user->createToken() e $user->tokens.
Autenticazione con API token
Flusso
Emettere un token
createToken() restituisce plainTextToken. Il token in chiaro non viene salvato: restituiscilo subito al client.
Scope (abilities)
Middleware per scope
Inbootstrap/app.php:
Scadenza dei token
Di default nessuna scadenza. Inconfig/sanctum.php expiration in minuti.
Revocare token
Autenticazione SPA
Con cookie di sessione, senza gestione token. Ideale per frontend proprie.Attiva il middleware Sanctum
Inbootstrap/app.php:
Domini first-party
CORS
Flusso di login SPA
1
Ottieni il cookie CSRF
2
Login
3
Richieste autenticate
Protezione delle route
Applicaauth:sanctum.
Esempio: API di login e restituzione del token
1
Endpoint di login
2
Route autenticate
3
Chiamate dal client
Test
ConSanctum::actingAs() autentichi e definisci gli scope.
- Pest
- PHPUnit
Riepilogo
Installazione
Installazione
API più usate
API più usate
API token vs SPA
API token vs SPA
- API token: client senza sessione (mobile, terze parti, CLI).
- SPA: frontend Vue/React/Next.js sullo stesso dominio. Più sicura, no token da gestire.