So verwaltet Inertia.js die Authentifizierung und Autorisierung in Single-Page-Anwendungen (SPAs):
Authentifizierung
1. Inertia.js erfordert kein spezielles Authentifizierungssystem wie OAuth. Stattdessen können Sie das von Ihrem serverseitigen Framework bereitgestellte Authentifizierungssystem verwenden, beispielsweise das sitzungsbasierte Authentifizierungssystem in Laravel. [3]
2. Die Starterkits von Laravel, Breeze und Jetstream, bieten ein sofort einsatzbereites Gerüst für neue Inertia.js-Anwendungen, einschließlich Authentifizierungsfunktionen. [3]
3. Um auf den authentifizierten Benutzer in Ihren Inertia.js-Komponenten zuzugreifen, können Sie die Methode „Inertia.share()“ verwenden, um den authentifizierten Benutzer als Requisite an Ihre Seiten zu übergeben. [4]
Autorisierung
1. Für die Autorisierung basierend auf Ressourcentypen (z. B. kann der Benutzer das Beitragsmodul anzeigen oder einen neuen Beitrag erstellen) können Sie die Autorisierungsprüfungen als Requisiten an Ihre Inertia.js-Seitenkomponenten übergeben. [1][2]
2. Um die Autorisierung für bestimmte Ressourcenentitäten zu überprüfen (z. B. kann der Benutzer einen bestimmten Beitrag bearbeiten), können Sie Ihren Eloquent-Modellen ein „permissions“-Attribut hinzufügen, das die Autorisierungsprüfungen für diese Entität enthält. Anschließend können Sie diese „Berechtigungsdaten“ als Requisite an Ihre Inertia.js-Komponenten übergeben. [4]
3. Der Schlüssel besteht darin, die Autorisierungsprüfungen auf der Serverseite durchzuführen und die Ergebnisse dann als Requisiten an Ihre Inertia.js-Komponenten zu übergeben. Dadurch wird sichergestellt, dass die Autorisierungslogik nicht auf der Clientseite offengelegt wird, was manipuliert werden könnte. [4]
4. Inertia.js stellt kein eigenes Autorisierungssystem bereit, sondern integriert sich in das Autorisierungssystem Ihres serverseitigen Frameworks (z. B. Laravel's Gate und Policies). [4]
Zusammenfassend verwaltet Inertia.js die Authentifizierung, indem es das Authentifizierungssystem Ihres serverseitigen Frameworks nutzt, und verwaltet die Autorisierung, indem es die Prüfungen auf der Serverseite durchführt und die Ergebnisse als Requisiten an Ihre Inertia.js-Komponenten weitergibt. Dieser Ansatz stellt sicher, dass die Authentifizierungs- und Autorisierungslogik serverseitig sicher bleibt.
Zitate:[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