Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hur hanterar InertiaJS autentisering och auktorisering i SPA


Hur hanterar InertiaJS autentisering och auktorisering i SPA


Så här hanterar Inertia.js autentisering och auktorisering i ensidiga applikationer (SPA):

Autentisering

1. Inertia.js kräver inget speciellt autentiseringssystem som OAuth. Istället låter det dig använda autentiseringssystemet som tillhandahålls av ditt ramverk på serversidan, till exempel det sessionsbaserade autentiseringssystemet i Laravel. [3]

2. Laravels startpaket, Breeze och Jetstream, tillhandahåller färdiga ställningar för nya Inertia.js-applikationer, inklusive autentiseringsfunktioner. [3]

3. För att komma åt den autentiserade användaren i dina Inertia.js-komponenter kan du använda metoden `Inertia.share()` för att skicka den autentiserade användaren som en rekvisita till dina sidor. [4]

Auktorisering

1. För auktorisering baserad på resurstyper (kan användaren till exempel se inläggsmodulen eller skapa ett nytt inlägg), kan du skicka auktoriseringskontrollerna som rekvisita till dina Inertia.js-sidakomponenter. [1][2]

2. För att kontrollera auktorisering för specifika resursentiteter (t.ex. kan användaren redigera ett visst inlägg), kan du lägga till ett "permissions"-attribut till dina Eloquent-modeller som innehåller auktoriseringskontrollerna för den entiteten. Sedan kan du skicka denna "behörighetsdata" som en rekvisita till dina Inertia.js-komponenter. [4]

3. Nyckeln är att utföra auktoriseringskontrollerna på serversidan och sedan skicka resultaten till dina Inertia.js-komponenter som rekvisita. Detta säkerställer att auktoriseringslogiken inte exponeras på klientsidan, vilket skulle kunna manipuleras. [4]

4. Inertia.js tillhandahåller inte sitt eget auktoriseringssystem, utan integreras snarare med auktoriseringssystemet för ditt ramverk på serversidan (t.ex. Laravel's Gate och Policies). [4]

Sammanfattningsvis hanterar Inertia.js autentisering genom att utnyttja autentiseringssystemet för ditt ramverk på serversidan, och det hanterar auktorisering genom att utföra kontrollerna på serversidan och skicka resultaten som rekvisita till dina Inertia.js-komponenter. Detta tillvägagångssätt säkerställer att autentiserings- och auktoriseringslogiken hålls säker på serversidan.

Citat:
[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