Berikut adalah cara Inertia.js mengelola otentikasi dan otorisasi dalam aplikasi satu halaman (SPA):
Autentikasi
1. Inertia.js tidak memerlukan sistem otentikasi khusus seperti OAuth. Sebaliknya, ini memungkinkan Anda untuk menggunakan sistem otentikasi yang disediakan oleh kerangka sisi server Anda, seperti sistem otentikasi berbasis sesi di Laravel. [3]
2. Starter kit Laravel, Breeze dan Jetstream, menyediakan scaffolding out-of-the-box untuk aplikasi Inertia.js baru, termasuk fungsi otentikasi. [3]
3. Untuk mengakses pengguna yang diautentikasi di komponen Inertia.js, Anda dapat menggunakan metode `Inertia.share()` untuk meneruskan pengguna yang diautentikasi sebagai prop ke halaman Anda. [4]
Otorisasi
1. Untuk otorisasi berdasarkan jenis sumber daya (misalnya, apakah pengguna dapat melihat modul postingan atau membuat postingan baru), Anda dapat meneruskan pemeriksaan otorisasi sebagai props ke komponen halaman Inertia.js Anda. [1] [2]
2. Untuk memeriksa otorisasi entitas sumber daya tertentu (misalnya, apakah pengguna dapat mengedit postingan tertentu), Anda dapat menambahkan atribut `izin` ke model Eloquent Anda yang berisi pemeriksaan otorisasi untuk entitas tersebut. Kemudian, Anda dapat meneruskan data `izin` ini sebagai penyangga ke komponen Inertia.js Anda. [4]
3. Kuncinya adalah melakukan pemeriksaan otorisasi di sisi server dan kemudian meneruskan hasilnya ke komponen Inertia.js Anda sebagai props. Hal ini memastikan bahwa logika otorisasi tidak terekspos di sisi klien, yang dapat dirusak. [4]
4. Inertia.js tidak menyediakan sistem otorisasinya sendiri, melainkan terintegrasi dengan sistem otorisasi kerangka sisi server Anda (misalnya, Gerbang dan Kebijakan Laravel). [4]
Singkatnya, Inertia.js mengelola autentikasi dengan memanfaatkan sistem autentikasi kerangka sisi server Anda, dan menangani otorisasi dengan melakukan pemeriksaan di sisi server dan meneruskan hasilnya sebagai props ke komponen Inertia.js Anda. Pendekatan ini memastikan bahwa logika otentikasi dan otorisasi tetap aman di sisi server.
Kutipan:[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