Hier ziet u hoe Inertia.js authenticatie en autorisatie beheert in applicaties met één pagina (SPA's):
Authenticatie
1. Inertia.js vereist geen speciaal authenticatiesysteem zoals OAuth. In plaats daarvan kunt u het authenticatiesysteem gebruiken dat door uw server-side framework wordt geleverd, zoals het sessiegebaseerde authenticatiesysteem in Laravel. [3]
2. De starterkits van Laravel, Breeze en Jetstream, bieden kant-en-klare steigers voor nieuwe Inertia.js-applicaties, inclusief authenticatiefunctionaliteit. [3]
3. Om toegang te krijgen tot de geverifieerde gebruiker in uw Inertia.js-componenten, kunt u de `Inertia.share()`-methode gebruiken om de geverifieerde gebruiker als hulpmiddel aan uw pagina's door te geven. [4]
Autorisatie
1. Voor autorisatie op basis van resourcetypen (kan de gebruiker bijvoorbeeld de berichtenmodule bekijken of een nieuw bericht maken), kunt u de autorisatiecontroles doorgeven als rekwisieten voor uw Inertia.js-paginacomponenten. [1][2]
2. Om de autorisatie voor specifieke bronentiteiten te controleren (kan de gebruiker bijvoorbeeld een bepaald bericht bewerken), kunt u een 'permissions'-attribuut toevoegen aan uw Eloquent-modellen dat de autorisatiecontroles voor die entiteit bevat. Vervolgens kunt u deze `permissions`-gegevens doorgeven als hulpmiddel voor uw Inertia.js-componenten. [4]
3. De sleutel is om de autorisatiecontroles aan de serverzijde uit te voeren en vervolgens de resultaten als rekwisieten door te geven aan uw Inertia.js-componenten. Dit zorgt ervoor dat de autorisatielogica niet aan de clientzijde wordt blootgesteld, waarmee kan worden geknoeid. [4]
4. Inertia.js biedt geen eigen autorisatiesysteem, maar integreert eerder met het autorisatiesysteem van uw server-side framework (bijvoorbeeld Laravel's Gate en Policies). [4]
Samenvattend beheert Inertia.js de authenticatie door gebruik te maken van het authenticatiesysteem van uw server-side framework, en het regelt de autorisatie door de controles aan de server-zijde uit te voeren en de resultaten als rekwisieten door te geven aan uw Inertia.js-componenten. Deze aanpak zorgt ervoor dat de authenticatie- en autorisatielogica aan de serverzijde veilig blijft.
Citaties:[1] https://inertiajs.com/authorization
[2] https://legacy.inertiajs.com/authorization
[3] https://inertiajs.com/authenticatie
[4] https://sebastiandedeyne.com/handling-authorization-in-a-laravel-and-inertia-application
[5] https://www.youtube.com/watch?v=1xHfpDhuPzA