Ecco come Inertia.js gestisce l'autenticazione e l'autorizzazione nelle applicazioni a pagina singola (SPA):
Autenticazione
1. Inertia.js non richiede un sistema di autenticazione speciale come OAuth. Ti consente invece di utilizzare il sistema di autenticazione fornito dal tuo framework lato server, come il sistema di autenticazione basato sulla sessione in Laravel. [3]
2. Gli starter kit di Laravel, Breeze e Jetstream, forniscono un'impalcatura pronta all'uso per le nuove applicazioni Inertia.js, inclusa la funzionalità di autenticazione. [3]
3. Per accedere all'utente autenticato nei tuoi componenti Inertia.js, puoi utilizzare il metodo "Inertia.share()" per passare l'utente autenticato come supporto alle tue pagine. [4]
Autorizzazione
1. Per l'autorizzazione basata sui tipi di risorse (ad esempio, l'utente può visualizzare il modulo dei post o creare un nuovo post), puoi passare i controlli di autorizzazione come oggetti di scena ai componenti della tua pagina Inertia.js. [1] [2]
2. Per verificare l'autorizzazione per entità di risorse specifiche (ad esempio, l'utente può modificare un particolare post), puoi aggiungere un attributo "permessi" ai tuoi modelli Eloquent che contiene i controlli di autorizzazione per quell'entità. Quindi, puoi passare questi dati di "permessi" come supporto ai tuoi componenti Inertia.js. [4]
3. La chiave è eseguire i controlli di autorizzazione sul lato server e quindi passare i risultati ai componenti Inertia.js come oggetti di scena. Ciò garantisce che la logica di autorizzazione non sia esposta sul lato client, il che potrebbe essere manomessa. [4]
4. Inertia.js non fornisce un proprio sistema di autorizzazione, ma piuttosto si integra con il sistema di autorizzazione del framework lato server (ad esempio, Laravel's Gate e Policies). [4]
In sintesi, Inertia.js gestisce l'autenticazione sfruttando il sistema di autenticazione del tuo framework lato server e gestisce l'autorizzazione eseguendo i controlli sul lato server e passando i risultati come oggetti di scena ai componenti Inertia.js. Questo approccio garantisce che la logica di autenticazione e autorizzazione sia mantenuta sicura sul lato server.
Citazioni:[1] https://inertiajs.com/authorization
[2] https://legacy.inertiajs.com/authorization
[3] https://inertiajs.com/authentication
[4] https://sebastiandedeyne.com/handling-authorization-in-a-laravel-and-inertia-application
[5] https://www.youtube.com/watch?v=1xHfpDhuPzA