Zde je návod, jak Inertia.js spravuje ověřování a autorizaci v jednostránkových aplikacích (SPA):
Autentizace
1. Inertia.js nevyžaduje speciální ověřovací systém, jako je OAuth. Místo toho vám umožňuje používat autentizační systém poskytovaný vaším serverovým rámcem, jako je autentizační systém založený na relaci v Laravel. [3]
2. Startovací sady Laravel, Breeze a Jetstream, poskytují připravené lešení pro nové aplikace Inertia.js, včetně funkce ověřování. [3]
3. Chcete-li získat přístup k ověřenému uživateli ve vašich komponentách Inertia.js, můžete použít metodu `Inertia.share()` k předání ověřeného uživatele jako podpory na vaše stránky. [4]
Oprávnění
1. Pro autorizaci na základě typů zdrojů (např. může uživatel zobrazit modul příspěvků nebo vytvořit nový příspěvek), můžete předat kontroly autorizace jako rekvizity komponentám vaší stránky Inertia.js. [1][2]
2. Chcete-li zkontrolovat autorizaci pro konkrétní entity zdrojů (např. může uživatel upravit konkrétní příspěvek), můžete do svých modelů Eloquent přidat atribut `permissions`, který obsahuje kontroly autorizace pro danou entitu. Poté můžete tato data „oprávnění“ předat jako podpěru vašim komponentám Inertia.js. [4]
3. Klíčem je provést kontroly autorizace na straně serveru a poté předat výsledky vašim komponentám Inertia.js jako rekvizitám. To zajišťuje, že autorizační logika není vystavena na straně klienta, což by mohlo být narušeno. [4]
4. Inertia.js neposkytuje svůj vlastní autorizační systém, ale spíše se integruje s autorizačním systémem vašeho rámce na straně serveru (např. Laravel's Gate and Policies). [4]
Stručně řečeno, Inertia.js spravuje ověřování pomocí ověřovacího systému vašeho rámce na straně serveru a zpracovává autorizaci prováděním kontrol na straně serveru a předáváním výsledků jako rekvizit vašim komponentám Inertia.js. Tento přístup zajišťuje zabezpečení autentizační a autorizační logiky na straně serveru.
Citace:[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