Her er hvordan Inertia.js administrerer autentisering og autorisasjon i enkeltsideapplikasjoner (SPAer):
Autentisering
1. Inertia.js krever ikke et spesielt autentiseringssystem som OAuth. I stedet lar den deg bruke autentiseringssystemet som leveres av rammeverket på serversiden, for eksempel det øktbaserte autentiseringssystemet i Laravel. [3]
2. Laravels startsett, Breeze og Jetstream, gir ut-av-boksen stillas for nye Inertia.js-applikasjoner, inkludert autentiseringsfunksjonalitet. [3]
3. For å få tilgang til den autentiserte brukeren i Inertia.js-komponentene dine, kan du bruke `Inertia.share()`-metoden for å sende den autentiserte brukeren som en rekvisitt til sidene dine. [4]
Autorisasjon
1. For autorisasjon basert på ressurstyper (kan brukeren f.eks. se innleggsmodulen eller opprette et nytt innlegg), kan du sende autorisasjonssjekkene som rekvisitter til sidekomponentene på Inertia.js. [1][2]
2. For å sjekke autorisasjon for spesifikke ressursenheter (kan brukeren f.eks. redigere et bestemt innlegg), kan du legge til et «permissions»-attributt til Eloquent-modellene dine som inneholder autorisasjonssjekkene for den enheten. Deretter kan du sende disse `tillatelser`-dataene som en rekvisitt til Inertia.js-komponentene dine. [4]
3. Nøkkelen er å utføre autorisasjonssjekkene på serversiden og deretter sende resultatene til Inertia.js-komponentene dine som rekvisitter. Dette sikrer at autorisasjonslogikken ikke blir eksponert på klientsiden, noe som kan bli tuklet med. [4]
4. Inertia.js tilbyr ikke sitt eget autorisasjonssystem, men integreres heller med autorisasjonssystemet til rammeverket ditt på serversiden (f.eks. Laravel's Gate and Policies). [4]
Oppsummert administrerer Inertia.js autentisering ved å utnytte autentiseringssystemet til rammeverket på serversiden, og det håndterer autorisasjon ved å utføre sjekkene på serversiden og sende resultatene som rekvisitter til Inertia.js-komponentene dine. Denne tilnærmingen sikrer at autentiserings- og autorisasjonslogikken holdes sikker på serversiden.
Sitater:[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