Tu je návod, ako Inertia.js spravuje autentifikáciu a autorizáciu v jednostránkových aplikáciách (SPA):
Overenie
1. Inertia.js nevyžaduje špeciálny autentifikačný systém ako OAuth. Namiesto toho vám umožňuje používať autentifikačný systém poskytovaný rámcom na strane servera, ako napríklad autentifikačný systém založený na reláciách v Laravel. [3]
2. Štartovacie sady Laravel, Breeze a Jetstream, poskytujú hotové lešenie pre nové aplikácie Inertia.js vrátane funkcie autentifikácie. [3]
3. Ak chcete získať prístup k overenému používateľovi vo vašich komponentoch Inertia.js, môžete použiť metódu `Inertia.share()` na odovzdanie overeného používateľa ako podporu na vaše stránky. [4]
Autorizácia
1. V prípade autorizácie na základe typov zdrojov (napr. môže používateľ zobraziť modul príspevkov alebo vytvoriť nový príspevok), môžete kontroly autorizácie odovzdať ako rekvizity komponentom stránky Inertia.js. [1][2]
2. Ak chcete skontrolovať autorizáciu pre špecifické entity zdrojov (napr. môže používateľ upraviť konkrétny príspevok), môžete do svojich modelov Eloquent pridať atribút `permissions`, ktorý obsahuje kontroly autorizácie pre túto entitu. Potom môžete tieto údaje „povolení“ odovzdať ako podperu svojim komponentom Inertia.js. [4]
3. Kľúčom je vykonať kontroly autorizácie na strane servera a potom odovzdať výsledky vašim komponentom Inertia.js ako rekvizitám. To zaisťuje, že autorizačná logika nie je odhalená na strane klienta, s ktorou by sa mohlo manipulovať. [4]
4. Inertia.js neposkytuje svoj vlastný autorizačný systém, ale integruje sa s autorizačným systémom vášho serverového rámca (napr. Laravel's Gate a Politiky). [4]
Stručne povedané, Inertia.js spravuje autentifikáciu využívaním autentifikačného systému vášho rámca na strane servera a spracováva autorizáciu vykonávaním kontrol na strane servera a odovzdávaním výsledkov ako rekvizít vašim komponentom Inertia.js. Tento prístup zabezpečuje, že logika autentifikácie a autorizácie je na strane servera zabezpečená.
Citácie:[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