Inertia は、Laravel の組み込み認証機能を活用し、Inertia のシングルページ アプリケーション (SPA) アーキテクチャとシームレスに連携するように拡張することで、Laravel でのユーザー認証を処理します。重要なポイントは次のとおりです。
1. Laravel のデフォルト認証の使用:
- Inertia は Laravel のデフォルトのセッションベースの認証を使用します。これは、ユーザーが Laravel の組み込み認証メカニズムを使用して認証されることを意味します。
- このアプローチでは、Inertia が Laravel の認証システムと直接対話できるため、認証用に別の API を作成する必要がなくなります[1][2][3]。
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