Laravel Passport: Panduan Membangun Sistem Autentikasi OAuth

dani indra

Laravel Passport adalah paket resmi untuk Laravel yang memudahkan pengembangan sistem autentikasi OAuth2 dalam aplikasi web Laravel Anda. Dengan Passport, Anda dapat dengan mudah mengintegrasikan autentikasi OAuth untuk memberikan akses aman ke API Anda. Berikut adalah panduan langkah-demi-langkah untuk menggunakan Laravel Passport dalam proyek Laravel Anda.

Langkah 1: Instalasi Laravel Passport

  1. Instal Passport menggunakan Composer dengan menjalankan perintah berikut:
   composer require laravel/passport
  1. Setelah instalasi selesai, jalankan perintah berikut untuk melakukan migrasi tabel yang dibutuhkan Passport:
   php artisan migrate
  1. Selanjutnya, jalankan perintah berikut untuk menginstal Passport:
   php artisan passport:install

Ini akan membuat kunci enkripsi yang dibutuhkan oleh Passport.

Langkah 2: Konfigurasi Passport

  1. Passport akan menambahkan berkas AuthServiceProvider.php di direktori app/Providers. Di dalam berkas ini, tambahkan metode berikut ke dalam metode boot:
   use Laravel\Passport\Passport;

   public function boot()
   {
       $this->registerPolicies();

       Passport::routes();
   }

Metode Passport::routes() akan mendaftarkan rute yang diperlukan untuk autentikasi Passport.

  1. Anda juga perlu mengaktifkan Passport sebagai middleware dalam berkas app/Http/Kernel.php dengan menambahkannya ke dalam properti $middlewareGroups:
   'api' => [
       \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
       'throttle:60,1',
       'bindings',
   ],

Middleware CreateFreshApiToken akan menambahkan token API saat pengguna login, yang memungkinkan otentikasi berbasis token untuk berfungsi.

Langkah 3: Konfigurasi Model Pengguna

  1. Passport mengharapkan bahwa model pengguna Anda mengimplementasikan Laravel\Passport\HasApiTokens. Edit model pengguna Anda dan tambahkan trait ini:
   use Laravel\Passport\HasApiTokens;

   class User extends Authenticatable
   {
       use HasApiTokens, Notifiable;

       // ...
   }
  1. Pastikan bahwa model pengguna Anda adalah model yang autentikasi, yaitu, telah mengimplementasikan Illuminate\Contracts\Auth\Authenticatable.

Langkah 4: Mengatur OAuth2 Client

  1. Untuk mengizinkan klien eksternal untuk mengakses API Anda, Anda perlu membuat OAuth2 client. Jalankan perintah berikut untuk membuat klien:
   php artisan passport:client

Anda akan diminta untuk memasukkan detail klien, seperti nama klien dan jenis klien (biasanya “password” untuk aplikasi web).

  1. Setelah selesai, Anda akan mendapatkan ID Klien dan Secret Klien. Simpan informasi ini dengan aman karena akan digunakan oleh klien eksternal untuk mendapatkan token akses.

Langkah 5: Menyediakan Endpoints Autentikasi

  1. Passport menyediakan beberapa rute untuk mengelola autentikasi OAuth. Anda dapat menambahkan rute-rute ini ke dalam file routes/api.php atau tempat yang sesuai dalam aplikasi Anda:
   Route::post('login', 'AuthController@login');
   Route::post('register', 'AuthController@register');
   Route::middleware('auth:api')->group(function () {
       Route::get('user', 'AuthController@user');
       Route::post('logout', 'AuthController@logout');
   });

Contoh di atas mencakup rute untuk login, registrasi, mendapatkan informasi pengguna yang sudah login, dan logout.

  1. Buat kontroler AuthController dengan metode-metode yang sesuai sesuai dengan rute-rute yang Anda definisikan. Anda harus menggunakan Passport untuk menghasilkan token akses dan mengautentikasi pengguna.

Langkah 6: Menggunakan OAuth2 untuk Autentikasi

  1. Untuk mengotentikasi pengguna, klien eksternal perlu mengirim permintaan POST ke rute login dengan informasi klien, seperti ID Klien, Secret Klien, nama pengguna, dan kata sandi.
  2. Setelah berhasil login, Anda akan menerima token akses. Token ini harus disertakan dalam setiap permintaan API ke rute yang dilindungi oleh middleware auth:api. Middleware ini akan mengotentikasi pengguna berdasarkan token akses yang diberikan.

Kesimpulan

Dengan menggunakan Laravel Passport, Anda dapat dengan mudah mengintegrasikan autentikasi OAuth2 dalam proyek Laravel Anda. Ini adalah cara yang aman dan efisien untuk mengamankan API Anda dan memberikan akses yang terkontrol kepada klien eksternal. Dengan mengikuti langkah-langkah di atas, Anda dapat membangun sistem autentikasi OAuth2 yang kuat dalam waktu singkat.

Leave a Comment