Вот как 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's Gate and Policies). [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