Inertia는 Laravel의 내장 인증 기능을 활용하고 이를 Inertia의 단일 페이지 애플리케이션(SPA) 아키텍처와 원활하게 작동하도록 확장하여 Laravel의 사용자 인증을 처리합니다. 핵심 사항은 다음과 같습니다.
1. Laravel의 기본 인증 사용:
- Inertia는 Laravel의 기본 세션 기반 인증을 사용합니다. 즉, 사용자는 Laravel에 내장된 인증 메커니즘을 사용하여 인증됩니다.
- 이 접근 방식을 사용하면 Inertia가 Laravel의 인증 시스템[1][2][3]과 직접 상호 작용할 수 있으므로 인증을 위해 별도의 API를 만들 필요가 없습니다.
2. 인증된 사용자 공유:
- 인증된 사용자를 프런트엔드와 공유하기 위해 Inertia의 'share' 방식을 사용합니다. 이를 통해 프런트엔드가 사용자 개체에 액세스하고 이를 인증 확인에 사용할 수 있습니다[2].
3. 승인 확인:
- Inertia가 공유하는 사용자 개체를 사용하여 프런트엔드에서 권한 확인이 수행됩니다. 이를 통해 프런트엔드는 사용자의 권한에 따라 콘텐츠를 동적으로 표시하거나 숨길 수 있습니다[2].
4. 데이터 변환:
- 데이터 변환은 인증 확인에 매우 중요합니다. Inertia의 'share' 방법을 사용하면 데이터가 프런트엔드에 도달하기 전에 데이터를 변환할 수 있으므로 복잡한 인증 요구 사항을 더 쉽게 처리할 수 있습니다[2].
5. 스타터 키트:
- Laravel은 새로운 Laravel 애플리케이션에 인증을 통합하기 위한 아름답게 디자인된 시작점을 제공하는 Laravel Breeze 및 Laravel Jetstream과 같은 스타터 키트를 제공합니다. 이 키트에는 Livewire 또는 Inertia 기반 스캐폴딩 옵션이 포함되어 있어 인증을 Inertia 애플리케이션과 쉽게 통합할 수 있습니다[4].
이러한 기능을 활용함으로써 Inertia는 Laravel을 사용하여 사용자 인증을 처리하는 원활하고 효율적인 방법을 제공하므로 개발자는 복잡한 인증 및 승인에 대해 걱정하지 않고 애플리케이션 구축에 집중할 수 있습니다.
인용:[1] https://atlas.dev/blog/using-inertia-with-laravel-in-2024
[2] https://sebastiandedeyne.com/handling-authorization-in-a-laravel-and-inertia-application
[3] https://github.com/inertiajs/inertia-laravel/issues/21
[4] https://laravel.com/docs/11.x/authentication
[5] https://stackoverflow.com/questions/66080777/laravel-inertia-js-and-vue-check-if-user-is-logged-in