Skip to main content

Cos’è Passport

Laravel Passport è il pacchetto ufficiale che fa 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 ti serve OAuth2, scegli Passport. Per una semplice autenticazione a token API o per autenticazione SPA/mobile, scegli Sanctum.
Per costruire un server MCP accessibile da client AI, ufficialmente è raccomandato Passport, poiché i client MCP presuppongono di norma l’autenticazione OAuth.

Installazione

In Laravel 13, l’installazione ufficiale consigliata è install:api --passport.
Per un progetto esistente in cui installi manualmente:
Al primo deploy può essere utile eseguire solo la generazione delle chiavi.

Configurazione

Modello User

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

Guard auth

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

Configurazione del service provider

Nel boot() di AppServiceProvider puoi definire scope e scadenze dei token.

Gestione dei client

Client per authorization code grant

Questo client si usa nel flusso standard OAuth2 con 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 scope

Verifica degli scope

Revoca

Protezione delle route API

Applica auth:api alle API protette da un access token utente.
Per le route con client credentials grant non usare auth:api, ma EnsureClientIsResourceOwner.

Personal Access Token

Utile quando non ti serve il flusso OAuth2 completo e vuoi permettere all’utente di generarsi da solo un token API.
Se il tuo caso d’uso principale sono i Personal Access Token, anche la documentazione ufficiale suggerisce di valutare Sanctum.
Ultima modifica il 2 agosto 2026