Ось як Inertia.js керує автентифікацією та авторизацією в односторінкових програмах (SPA):
Автентифікація
1. Inertia.js не вимагає спеціальної системи аутентифікації, як OAuth. Замість цього він дозволяє вам використовувати систему автентифікації, яку надає ваша серверна структура, наприклад систему автентифікації на основі сеансу в Laravel. [3]
2. Стартові комплекти Laravel, Breeze і Jetstream, забезпечують готові каркаси для нових програм Inertia.js, включаючи функцію автентифікації. [3]
3. Щоб отримати доступ до автентифікованого користувача у ваших компонентах Inertia.js, ви можете використати метод `Inertia.share()`, щоб передати автентифікованого користувача як проп на ваші сторінки. [4]
Авторизація
1. Для авторизації на основі типів ресурсів (наприклад, чи може користувач переглядати модуль публікацій або створювати нову публікацію), ви можете передати перевірки авторизації як атрибути для ваших компонентів сторінки Inertia.js. [1][2]
2. Щоб перевірити авторизацію для певних сутностей ресурсу (наприклад, чи може користувач редагувати певну публікацію), ви можете додати атрибут `permissions` до своїх моделей Eloquent, який містить перевірки авторизації для цієї сутності. Потім ви можете передати ці дані «дозволи» як проп вашим компонентам Inertia.js. [4]
3. Головне — виконати перевірку авторизації на стороні сервера, а потім передати результати вашим компонентам Inertia.js як атрибути. Це гарантує, що логіка авторизації не розкрита на стороні клієнта, яка може бути підроблена. [4]
4. Inertia.js не надає власної системи авторизації, а інтегрується з системою авторизації вашої серверної структури (наприклад, Laravel Gate і політики). [4]
Таким чином, Inertia.js керує автентифікацією, використовуючи систему автентифікації вашого серверного фреймворку, і обробляє авторизацію, виконуючи перевірки на стороні сервера та передаючи результати як атрибути вашим компонентам Inertia.js. Цей підхід гарантує безпеку логіки автентифікації та авторизації на стороні сервера.
цитати:[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