Cos’è l’autenticazione
L’autenticazione è il meccanismo che verifica “chi è” l’utente che accede. Nelle applicazioni web, riceviamo email e password da un form di login e, se corretti, salviamo le informazioni dell’utente nella sessione. Nelle richieste successive si identifica l’utente consultando quella sessione. Le funzionalità di autenticazione di Laravel sono composte da due concetti: le “guard” e i “provider”.- Guard: definiscono come autenticare l’utente in ciascuna richiesta. Quella predefinita è la guard
session, che gestisce lo stato con sessione e cookie. - Provider: definiscono come recuperare l’utente dal database. Quello predefinito usa Eloquent.
Il file di configurazione dell’autenticazione è
config/auth.php. Le impostazioni predefinite sono adatte alla maggior parte delle applicazioni web.Autenticazione tramite starter kit
In Laravel, scegliendo semplicemente uno starter kit quando crei l’applicazione conlaravel new, vengono costruite automaticamente le funzionalità di login, registrazione, reset password e altre. È l’approccio più consigliato.
Crea l'applicazione
Crea l’applicazione con l’installer di Laravel. Durante il processo viene mostrato un prompt per selezionare lo starter kit.Puoi scegliere tra React, Vue, Livewire e Svelte come starter kit.
Scegli in base allo stack tecnologico del team.
Prepara il database
Verifica le impostazioni del database nel file Vengono applicate le migration iniziali, inclusa la tabella
.env ed esegui le migration.users.| Funzionalità | URL |
|---|---|
| Registrazione utente | /register |
| Login | /login |
| Reset password | /forgot-password |
| Verifica email | /email/verify |
| Modifica profilo | /settings/profile |
Starter kit disponibili
React
Puoi costruire SPA moderne con React 19, TypeScript, Tailwind e shadcn/ui. Grazie a Inertia, sfrutti il frontend React mantenendo il routing lato server.Vue
Utilizza Vue Composition API, TypeScript, Tailwind e shadcn-vue. Come React, si integra con il server tramite Inertia.Livewire
Usa Livewire per costruire UI dinamiche solo in PHP. Ideale per team che lavorano principalmente con i template Blade o che vogliono evitare framework JavaScript. Include la libreria di componenti Flux UI.Svelte
Usa Svelte 5, TypeScript, Tailwind e shadcn-svelte. Costruisci SPA moderne combinandolo con Inertia.Facade Auth
Con la facadeAuth puoi ottenere le informazioni dell’utente attualmente autenticato o verificarne lo stato.
Ottenere l’utente autenticato
Request.
Verifica dello stato di autenticazione
Auth::check() restituisce true / false a seconda che l’utente sia autenticato.
@auth e @guest sono comode.
Protezione delle route
Per creare route accessibili solo agli utenti autenticati usa il middlewareauth.
/login.
Per proteggere più route in blocco usa un gruppo.
Route solo per ospiti
Per reindirizzare gli utenti autenticati usa il middlewareguest.
Applicandolo alle pagine di login e registrazione, gli utenti già autenticati vengono inviati alla dashboard.
Autenticazione manuale
Per implementare il login manualmente, senza starter kit, usaAuth::attempt().
Auth::attempt().
La password viene confrontata automaticamente con l’hash, quindi passala in chiaro.
Per implementare la funzione “ricordami”, passa true come secondo argomento.
Anche implementando l’autenticazione manualmente, ti consiglio di ispirarti al codice degli starter kit. Sono ottimi esempi di implementazione sicura.
Logout
Per disconnettere l’utente chiamaAuth::logout().
La best practice è invalidare anche la sessione e rigenerare il token CSRF.
Riepilogo
| Obiettivo | Metodo |
|---|---|
| Aggiungere velocemente l’autenticazione | Starter kit (laravel new) |
| Ottenere l’utente corrente | Auth::user() / $request->user() |
| Verificare lo stato di login | Auth::check() |
| Proteggere una route | ->middleware('auth') |
| Effettuare il login manualmente | Auth::attempt($credentials) |
| Effettuare il logout | Auth::logout() |
Prossimi passi
Middleware
Impara nel dettaglio come funziona il middleware
auth e come creare middleware personalizzati.