Sådan administrerer Inertia.js godkendelse og godkendelse i enkeltsidesapplikationer (SPA'er):
Godkendelse
1. Inertia.js kræver ikke et specielt godkendelsessystem som OAuth. I stedet giver det dig mulighed for at bruge det autentificeringssystem, der leveres af din server-side framework, såsom det sessionsbaserede autentificeringssystem i Laravel. [3]
2. Laravels startsæt, Breeze og Jetstream, leverer ud-af-boksen stilladser til nye Inertia.js-applikationer, inklusive godkendelsesfunktionalitet. [3]
3. For at få adgang til den autentificerede bruger i dine Inertia.js-komponenter, kan du bruge `Inertia.share()`-metoden til at videregive den godkendte bruger som en rekvisit til dine sider. [4]
Autorisation
1. For godkendelse baseret på ressourcetyper (kan brugeren f.eks. se postmodulet eller oprette et nyt indlæg), kan du videregive autorisationskontrollen som rekvisitter til dine Inertia.js sidekomponenter. [1][2]
2. For at kontrollere autorisation for specifikke ressourceenheder (kan brugeren f.eks. redigere et bestemt indlæg), kan du tilføje en "permissions"-attribut til dine Eloquent-modeller, der indeholder autorisationstjek for denne enhed. Derefter kan du videregive disse `tilladelser`-data som en rekvisit til dine Inertia.js-komponenter. [4]
3. Nøglen er at udføre autorisationskontrollen på serversiden og derefter sende resultaterne til dine Inertia.js-komponenter som rekvisitter. Dette sikrer, at godkendelseslogikken ikke er afsløret på klientsiden, hvilket kan manipuleres med. [4]
4. Inertia.js leverer ikke sit eget autorisationssystem, men integrerer snarere med autorisationssystemet for din server-side framework (f.eks. Laravel's Gate og Policies). [4]
Sammenfattende administrerer Inertia.js godkendelse ved at udnytte godkendelsessystemet for din serversideramme, og den håndterer autorisation ved at udføre kontrollerne på serversiden og overføre resultaterne som rekvisitter til dine Inertia.js-komponenter. Denne tilgang sikrer, at godkendelses- og autorisationslogikken holdes sikker på serversiden.
Citater:[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