Štai kaip Inertia.js tvarko autentifikavimą ir autorizavimą vieno puslapio programose (SPA):
Autentifikavimas
1. Inertia.js nereikalauja specialios autentifikavimo sistemos, tokios kaip OAuth. Vietoj to, tai leidžia naudoti autentifikavimo sistemą, kurią teikia jūsų serverio pusės sistema, pvz., seansu pagrįstą autentifikavimo sistemą Laravel. [3]
2. „Laravel“ pradiniai rinkiniai „Breeze“ ir „Jetstream“ suteikia naujoms „Inertia.js“ programoms, įskaitant autentifikavimo funkcijas, paruoštus pastolius. [3]
3. Norėdami pasiekti autentifikuotą vartotoją savo Inertia.js komponentuose, galite naudoti metodą "Inertia.share()", kad autentifikuotą vartotoją perduotų kaip rekvizitus į savo puslapius. [4]
Autorizacija
1. Jei norite suteikti įgaliojimą pagal išteklių tipus (pvz., ar vartotojas gali peržiūrėti įrašų modulį arba sukurti naują įrašą), galite perduoti įgaliojimo patikras kaip rekvizitus savo Inertia.js puslapio komponentams. [1][2]
2. Norėdami patikrinti konkrečių išteklių objektų įgaliojimą (pvz., ar vartotojas gali redaguoti konkretų įrašą), galite pridėti atributą „permissions“ prie savo „Iloquent“ modelių, kuriuose yra to objekto įgaliojimų patikros. Tada galite perduoti šiuos „leidimų“ duomenis kaip rekvizitus savo Inertia.js komponentams. [4]
3. Svarbiausia yra atlikti prieigos patikrinimus serverio pusėje ir perduoti rezultatus Inertia.js komponentams kaip rekvizitus. Taip užtikrinama, kad kliento pusėje nebūtų atskleista autorizacijos logika, kuri gali būti sugadinta. [4]
4. Inertia.js nepateikia savo autorizacijos sistemos, o veikiau integruojasi su jūsų serverio sistemos autorizavimo sistema (pvz., Laravel's Gate and Policies). [4]
Apibendrinant galima pasakyti, kad Inertia.js valdo autentifikavimą naudodamas jūsų serverio sistemos autentifikavimo sistemą, o autorizaciją atlieka atlikdamas serverio patikrinimus ir perduodamas rezultatus kaip rekvizitus jūsų Inertia.js komponentams. Šis metodas užtikrina, kad autentifikavimo ir autorizacijos logika būtų saugi serverio pusėje.
Citatos:[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