Az Inertia.js a következőképpen kezeli a hitelesítést és az engedélyezést az egyoldalas alkalmazásokban (SPA-k):
Hitelesítés
1. Az Inertia.js nem igényel speciális hitelesítési rendszert, mint például az OAuth. Ehelyett lehetővé teszi a szerveroldali keretrendszer által biztosított hitelesítési rendszer használatát, például a Laravel munkamenet-alapú hitelesítési rendszerét. [3]
2. A Laravel kezdőkészletei, a Breeze és a Jetstream, azonnali állványzatot biztosítanak az új Inertia.js alkalmazásokhoz, beleértve a hitelesítési funkciókat is. [3]
3. Az Inertia.js összetevőiben található hitelesített felhasználó eléréséhez használja az `Inertia.share()' metódust, hogy a hitelesített felhasználót segédeszközként adja át oldalainak. [4]
Engedélyezés
1. Az erőforrástípusokon alapuló engedélyezéshez (pl. megtekintheti-e a felhasználó a bejegyzések modult vagy létrehozhat-e új bejegyzést) az engedélyezési ellenőrzéseket kellékekként átadhatja az Inertia.js oldal összetevőinek. [1][2]
2. Adott erőforrás-entitások jogosultságának ellenőrzéséhez (például, hogy a felhasználó szerkeszthet-e egy bizonyos bejegyzést), hozzáadhat egy "permissions" attribútumot az Eloquent modellekhez, amely tartalmazza az adott entitás jogosultság-ellenőrzését. Ezután átadhatja ezeket a `jogosultsági' adatokat kellékként az Inertia.js összetevőinek. [4]
3. A kulcs az, hogy a kiszolgálóoldalon hajtsa végre az engedélyezési ellenőrzéseket, majd adja át az eredményeket az Inertia.js összetevőknek kellékként. Ez biztosítja, hogy az engedélyezési logika ne kerüljön nyilvánosságra az ügyféloldalon, ami megzavarható. [4]
4. Az Inertia.js nem biztosít saját engedélyezési rendszert, hanem integrálódik az Ön szerveroldali keretrendszerének engedélyezési rendszerével (pl. Laravel's Gate and Policy). [4]
Összefoglalva, az Inertia.js a hitelesítést a kiszolgálóoldali keretrendszer hitelesítési rendszerének kihasználásával kezeli, a hitelesítést pedig úgy kezeli, hogy a szerveroldalon elvégzi az ellenőrzéseket, és az eredményeket kellékként továbbítja az Inertia.js összetevőinek. Ez a megközelítés biztosítja, hogy a hitelesítési és engedélyezési logika biztonságos legyen a szerver oldalon.
Idézetek:[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