Menerapkan API Authentication Laravel Menggunakan Sanctum - Perwira Learning Center
1. Latar Belakang Hai teman-teman! Kali ini kita bakal bahas tentang menerapkan API Authentication menggunakan Laravel dan Sanctum. Jadi, buat yang belum tahu, Laravel itu adalah framework PHP yang super populer karena kemudahan dan keindahannya dalam membangun aplikasi web. Nah, untuk aplikasi web yang kita bangun, kadang kita butuh sistem autentikasi supaya data kita aman. Disinilah fungsi API Authentication jadi penting banget! Sanctum sendiri adalah sebuah package yang disediakan oleh Laravel untuk menangani autentikasi API. Nah, kenapa kita perlu pakai Sanctum? Karena Sanctum lebih sederhana dan cocok banget untuk aplikasi yang gak memerlukan sistem autentikasi yang kompleks, seperti OAuth. 2. Pembahasan Mari kita mulai dengan cara menginstall Sanctum pada proyek Laravel kita. Pertama, pastikan kamu sudah punya proyek Laravel. Nah, untuk menginstal Sanctum, kita bisa menggunakan composer. Jadi buka terminal dan jalankan perintah berikut: composer require laravel/sanctum Setelah berhasil diinstall, langkah selanjutnya adalah menerbitkan file konfigurasi Sanctum dengan perintah ini: php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider" Setelah itu, kita juga perlu menambahkan middleware Sanctum ke dalam file `api` di `app/Http/Kernel.php` seperti berikut: 'api' => [ \\... \\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, 'throttle:api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ], Sekarang, kita sudah siap untuk mengaktifkan Sanctum. Kita juga perlu melakukan migrasi untuk membuat tabel `personal_access_tokens` yang akan menyimpan token. Cukup jalankan: php artisan migrate Setelah itu, kita bisa mulai membuat model `User` yang mendukung Sanctum. Pastikan model `User` kita mengimplementasikan `HasApiTokens` seperti ini: use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { use HasApiTokens, Notifiable; // ... } Kemudian, kita bisa membuat route untuk login. Di dalam file `routes/api.php`, kita tambahkan route seperti berikut: Route::post('/login', function (Request $request) { $request->validate([ 'email' => 'required|email', 'password' => 'required', ]); $user = User::where('email', $request->email)->first(); if (!$user || !Hash::check($request->password, $user->password)) { return response()->json(['message' => 'Unauthorized'], 401); } $token = $user->createToken('token_name')->plainTextToken; return response()->json(['token' => $token]); }); Nah, setelah kita membuat route di atas, kamu bisa mencoba untuk login dengan menggunakan Postman atau aplikasi sejenis. Cukup kirimkan `email` dan `password` ke endpoint `/login`, dan kamu akan mendapatkan token yang bisa digunakan untuk autentikasi. Misalnya, kalau kita login dengan email dan password yang benar, kita akan dapat respons seperti ini: { "token": "1|KZ0kmjQJJ5QtTR8svs9Y2pFuLfuHu", } Setelah mendapatkan token, kita bisa menggunakannya untuk melakukan request ke route yang butuh autentikasi. Cukup tambahkan token ke header: Authorization: Bearer <token> Untuk contoh lain, kita bisa buat route `Profile` yang hanya bisa diakses user yang sudah terautentikasi: Route::get('/profile', function (Request $request) { return response()->json($request->user()); })->middleware('auth:sanctum'); Ketika kita memanggil route ini dengan header authorization yang benar, kita bakal mendapatkan data user kita. 3. Kesimpulan Jadi, itulah cara kita menerapkan API Authentication menggunakan Laravel dengan paket Sanctum. Santai saja, prosesnya cukup mudah dan membuat kita bisa melindungi data sensitif dalam aplikasi kita. Pastikan teman-teman mengikuti setiap langkah, dan jangan ragu untuk mencoba-coba. Nah, itu dia! Semoga artikel ini membantu kalian yang ingin belajar bagaimana cara kerja autentikasi API, kalian bisa mengimplementasikannya dalam proyek kalian. Selamat mencoba dan semoga sukses!
