Inertia gestisce l'autenticazione degli utenti con Laravel sfruttando le funzionalità di autenticazione integrate di Laravel ed estendendole per funzionare perfettamente con l'architettura dell'applicazione a pagina singola (SPA) di Inertia. Ecco i punti chiave:
1. Utilizzo dell'autenticazione predefinita di Laravel:
- Inertia utilizza l'autenticazione predefinita basata sulla sessione di Laravel, il che significa che gli utenti vengono autenticati utilizzando i meccanismi di autenticazione integrati di Laravel.
- Questo approccio elimina la necessità di creare un'API separata per l'autenticazione, poiché Inertia può interagire direttamente con il sistema di autenticazione di Laravel[1][2][3].
2. Condivisione dell'utente autenticato:
- Il metodo `share` di Inertia viene utilizzato per condividere l'utente autenticato con il frontend. Ciò consente al frontend di accedere all'oggetto utente e utilizzarlo per i controlli di autorizzazione[2].
3. Controlli delle autorizzazioni:
- I controlli di autorizzazione vengono eseguiti sul frontend utilizzando l'oggetto utente condiviso da Inertia. Ciò garantisce che il frontend possa visualizzare o nascondere dinamicamente il contenuto in base alle autorizzazioni dell'utente[2].
4. Trasformazione dei dati:
- La trasformazione dei dati è fondamentale per i controlli di autorizzazione. Il metodo "share" di Inertia può essere utilizzato per trasformare i dati prima che raggiungano il frontend, semplificando la gestione dei complessi requisiti di autorizzazione[2].
5. Kit iniziali:
- Laravel fornisce kit di avvio come Laravel Breeze e Laravel Jetstream che offrono punti di partenza ben progettati per incorporare l'autenticazione nella tua nuova applicazione Laravel. Questi kit includono opzioni di scaffolding basate su Livewire o Inertia, che semplificano l'integrazione dell'autenticazione con l'applicazione Inertia[4].
Sfruttando queste funzionalità, Inertia fornisce un modo semplice ed efficiente per gestire l'autenticazione degli utenti con Laravel, consentendo agli sviluppatori di concentrarsi sulla creazione della propria applicazione senza preoccuparsi delle complessità dell'autenticazione e dell'autorizzazione.
Citazioni:[1] https://atlas.dev/blog/using-inertia-with-laravel-in-2024
[2] https://sebastiandedeyne.com/handling-authorization-in-a-laravel-and-inertia-application
[3] https://github.com/inertiajs/inertia-laravel/issues/21
[4] https://laravel.com/docs/11.x/authentication
[5] https://stackoverflow.com/questions/66080777/laravel-inertia-js-and-vue-check-if-user-is-logged-in