Il core di Laravel fornisce di default “guards” e “providers” per gestire l’autenticazione. Tuttavia, controller, routes e views devono essere implementati a mano. Per raggiungere questo obiettivo, Laravel mette a disposizione dei packages ufficiali che offrono un sistema di autenticazione completo, pronto all’uso in pochi minuti.
Autenticazione Laravel: tutte le soluzioni possibili
Questo è un punto di forza di Laravel: in pochissimo tempo possiamo aggiungere un sistema di autenticazione ai nostri progetti. Tuttavia, più packages sono correlati all’autenticazione e può essere difficile sapere qual è quello più adeguato per il nostro progetto. Dovresti usare Laravel Jetstream o Laravel Breeze? Quali sono le differenze tra Laravel Passport e Laravel Sanctum?Abbiamo creato un diagramma per aiutarti a comprendere le differenze e fare la scelta migliore per il tuo progetto.
Laravel Breeze
https://laravel.com/docs/10.x/starter-kits#laravel-breeze
Breeze è un’implementazione minima e semplice delle funzionalità di autenticazione di Laravel. Funziona sia per applicazioni full-stack che per API. Questa è una scelta eccellente se ti piace la semplicità o se alle prime armi in Laravel.
✅ Puoi scegliere tra Blade, Vue/React (con Inertia) o API
✅ Utilizza Tailwind CSS quando vengono scelti gli stack Blade o Inertia
✅ Registrazione
✅ Accedi
✅ Gestione del profilo
✅ Reimpostazione della password
✅ Verifica e-mail
✅ Possibilità di customizzare le views
Laravel Jetstream
https://jetstream.laravel.com/introduction.html
Più completo ed elegante, Jetstream è un’interessante alternativa a Breeze. Fornisce più funzionalità ma richiede che il tuo progetto utilizzi Livewire o Inertia.
✅ Puoi scegliere tra Blade + Livewire o Vue/React + Inertia
✅ Utilizza Tailwind CSS
✅ Registrazione
✅ Accedi
✅ Gestione del profilo
✅ Reimpostazione della password
✅ Verifica e-mail
✅ Autenticazione a due fattori (2FA)
✅ Gestione dei gruppi di utenti
✅ Gestione delle sessioni del browser (permetti agli utenti di vedere dove hanno effettuato l’accesso)
✅ Token API e autorizzazioni (consenti agli utenti di generare token API)
❌ Difficile customizzare le views
Laravel Fortify
https://laravel.com/docs/10.x/fortify
Fortify è un’implementazione indipendente dal front-end di tutte le funzionalità di autenticazione. Fornisce tutte le routes ed i controllers necessari per implementare la logica di autenticazione, ma richiede la codifica dell’interfaccia utente da parte dell’utente.
Questa è un’ottima scelta se non usi Tailwind CSS, vuoi codificare tu stesso il tuo front-end o stai costruendo un’API.
❌ Nessuna views, nessuna interfaccia utente
✅ Registrazione
✅ Accedi
✅ Gestione del profilo
✅ Reimpostazione della password
✅ Verifica e-mail
✅ Autenticazione a due fattori (2FA)
✅ Gestione dei gruppi di utenti
✅ Gestione delle sessioni del browser (permetti agli utenti di vedere dove sono connessi e disconnettersi dalle sessioni)
✅ Token API e autorizzazioni (consenti agli utenti di generare token API)
Jetstream utilizza Fortify dietro le quinte e aggiunge il livello dell’interfaccia utente.
Laravel UI
https://github.com/laravel/ui
Laravel UI è l’impalcatura legacy e offre un sistema di autenticazione di base costruito sul framework Bootstrap CSS. Oggi, l’unico motivo per installarlo è che il tuo progetto utilizza Bootstrap CSS.
✅ Puoi scegliere tra HTML semplice, Vue o React
✅ Registrazione
✅ Accedi
✅ Reimpostazione della password
✅ Verifica e-mail
Laravel Passport
https://laravel.com/docs/10.x/passport
Passport fornisce un’implementazione completa del server OAuth2.
Laravel Sanctum
https://laravel.com/docs/10.x/sanctum
Sanctum offre un modo semplice per autenticare SPA o applicazioni mobili che devono comunicare con la tua API basata su Laravel. Se non hai bisogno del supporto OAuth2 completo, questa è un’alternativa molto più semplice a Passport.
✅ Middleware per autenticare la tua SPA (utilizzando sessioni basate su cookie)
✅ Middleware per autenticare i clienti utilizzando token API
✅ Generazione e autorizzazioni di token API
❌ Nessun percorso o controllore di autenticazione
Utilizzando Sanctum, devi comunque implementare la tua logica di autenticazione (creando routes e controllers) o utilizzarla in combinazione con Fortify. Se lo utilizzi per autenticare una SPA, deve essere ospitato sullo stesso dominio root della tua API poiché utilizza sessioni basate su cookie.
Speriamo che dopo questa breve guida ti sia più chiaro cosa utilizzare non abbiano più segreti per te e che questo articolo abbia reso più semplice la tua scelta se esiti tra loro.
Corsi Laravel e non solo, svolta la tua carriera di developer, scegli LaraMind!