Tutorial Laravel Jetstream #7 : API Support


Tutorial  Laravel Jetstream #7 : API Support

Halo teman-teman semuanya, di artikel sebelumnya kita sudah membahas banyak tentang Laravel Jetstream di bagian security. Dan pada kesempatan kali ini kita semua akan belajar tentang API di Laravel Jetstream. Secara default ketika kita menginstall Laravel Jetstream, maka otomatis mengintegrasikannya dengan Laravel Sanctum.

Laravel Sanctum menyediakan sistem authentikasi untuk SPA (Single Page Application), mobile app, dan API sederhana berbasis token. Laravel Sanctum memungkinkan setiap pengguna aplikasi bisa membuat beberapa token API untuk akun mereka. Token ini juga bisa kita set untuk permission / hak akses-nya.

Secara default, menu untuk token API dapat diakses menggunakan tautan “API Tokens" dari menu dropdown profil di kanan atas. Disini pengguna dapat membuat token API Sanctum yang memiliki permission / haks akses.


Defiinig Permissions

Untuk permission yang tersedia untuk API Tokens didefinisikan di dalam method Jetstream::permissions. Permission dibuat hanya dengan string sederhana, setelah di definisikan, permission tersebut dapat di assign ke dalam sebuah API Tokens. Kurang lebih seperti berikut ini :

Jetstream::defaultApiTokenPermissions(['read']);

Jetstream::permissions([
    'create',
    'read',
    'update',
    'delete',
]);


Untuk method defaultApiTokenPermissions adalah default permissions yang di pilih saat kita membuat sebuah API Tokens baru, di atas untuk nilai default dari permissions-nya adalah read. Tentu saja kita bisa menghapus centang / uncheck untuk default permissions saat membuat API Tokens baru.

Authorizing Incoming Requests

Setiap request yang terjadi di Laravel Jetstream, bahkan ke route yang diautentikasi dalam file routes/web.php, maka akan dikaitkan dengan Token objek dari Laravel Sanctum. Disini kita bisa memberikan sebuah token tersebut dengan hak akses atau permissions menggunakan method tokenCan, yang mana method tersebut sudah disediakan dari Traits Laravel\Sanctum\HasApiTokens. Traits tersebut akan otomatis terkait dengan model User saat kita melakukan installasi Laravel jetstream.

$request->user()->tokenCan('read');

Ketika pengguna membuat sebuah request ke sebuah rute dalam file routes/web.php di dalam aplikasi, maka permintaan tersebut biasanya akan diautentikasi oleh Laravel Sanctum melalui cookie yang berbasis guard web. Sejak pengguna membuat sebuah request melalui UI, maka method tokenCan akan selalu mengembalikan nilai true.

Disable API Support

Kita juga dapat menonaktifkan fitur API ini di dalam aplikasi yang kita kembangkan menggunakan Laravel Jetstream. Untuk melakukannya, kita harus memberi komentar pada konfigurasi fitur dari file config/jetstream.php :

'features' => [
    Features::profilePhotos(),
    // Features::api(), // <- disable this feature
    Features::teams(),
],

Di artikel selanjutnya kita akan membahas tentang Teams Management di dalam Laravel Jetstream, mulai dari membuat Team, menambahkan member dan mengatur sebuah role permissions.


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami