Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Как InertiaJS управляет аутентификацией и авторизацией в SPA


Как InertiaJS управляет аутентификацией и авторизацией в SPA


Вот как 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