Skip to main content

Cos’è Passport

Laravel Passport è il pacchetto ufficiale per far funzionare un’app Laravel come server di autorizzazione OAuth2. Si usa per integrazioni con app di terze parti o per API che richiedono un flusso OAuth2 rigoroso.

Passport vs Sanctum

Se OAuth2 è necessario scegli Passport. Se l’obiettivo è una semplice autenticazione tramite API token o l’autenticazione SPA/mobile, scegli Sanctum.

Installazione

La raccomandazione ufficiale di Laravel 13 è install:api --passport.
Per l’installazione manuale in un progetto esistente puoi usare anche i seguenti comandi.
Al primo deploy potresti voler eseguire solo la generazione delle chiavi.

Configurazione

Modello User

Aggiungi al modello User il trait HasApiTokens e l’interfaccia OAuthenticatable.

Guard auth

Nella guard api di config/auth.php usa il driver passport.

Configurazione nel service provider

Nel metodo boot() di AppServiceProvider puoi configurare gli scope e la scadenza dei token.

Gestione dei client

Client per authorization code grant

Questo client si usa nel flusso OAuth2 standard che prevede una schermata di consenso dell’utente.

Client per client credentials grant

Per gli endpoint di comunicazione machine-to-machine usa il middleware EnsureClientIsResourceOwner.

Gestione dei token

Assegnare gli scope

Verifica degli scope

Revoca

Protezione delle route API

Alle API protette tramite user access token applica auth:api.
Per le route del client credentials grant non usare auth:api, ma EnsureClientIsResourceOwner.

Personal Access Token

Adatti agli scenari in cui gli utenti emettono da soli token API, senza usare il flusso OAuth2 completo.
Se il caso d’uso principale sono i Personal Access Token, anche ufficialmente Laravel consiglia di valutare Sanctum.
Ultima modifica il 13 luglio 2026