Cara membuat custom tabel untuk JWT Passport: Difference between revisions

From DocsMaulana
m (Protected "Cara membuat custom tabel untuk JWT Passport" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 3: Line 3:
Untuk mengambil data dari tabel lain dari pada tabel default users, Anda perlu menyesuaikan pengaturan dalam konfigurasi JWT untuk menggunakannya. Berikut langkah-langkahnya:
Untuk mengambil data dari tabel lain dari pada tabel default users, Anda perlu menyesuaikan pengaturan dalam konfigurasi JWT untuk menggunakannya. Berikut langkah-langkahnya:


 
==  1.      Konfigurasi model provider ==
1.      Konfigurasi model provider
 
Untuk membuat Laravel mengambil data dari tabel selain user, yang perlu di lakukan adalah dengan melakukan konfigurasi model provider di dalam file config/auth.php.
Untuk membuat Laravel mengambil data dari tabel selain user, yang perlu di lakukan adalah dengan melakukan konfigurasi model provider di dalam file config/auth.php.


Tambahkan kode dibawah ini di dalam array providers
Tambahkan kode dibawah ini di dalam array providers


<blockquote>// …. Kode lain    
<code class="language-html">// …. Kode lain    


// pada contoh ini menggunakan table  'admins'
// pada contoh ini menggunakan table  'admins'
Line 20: Line 18:
      'model' => App\Models\Admin::class,
      'model' => App\Models\Admin::class,


  ],</blockquote>
  ],</code>
 
 
2.      Konfigurasi jwt passport


== 2.      Konfigurasi jwt passport ==
Setelah menambahkan provider seperti diatas. Langkah selanjutnya adalah mengkonfigurasi agar provider admis bisa di gunakan. Tambahkan kode ini di dalam array guard
Setelah menambahkan provider seperti diatas. Langkah selanjutnya adalah mengkonfigurasi agar provider admis bisa di gunakan. Tambahkan kode ini di dalam array guard


Line 42: Line 38:
  ],</blockquote>Perhatikan bahwa provider telah mengarah pada provider yang telah di buat sebelumnya.
  ],</blockquote>Perhatikan bahwa provider telah mengarah pada provider yang telah di buat sebelumnya.


3.      Konfigruasi model Admin
== 3.      Konfigruasi model Admin ==
 
Agar dapat berjalan perlu di lakukan konfigurasi pada model admin, konfigurasinya seperti berikut:
Agar dapat berjalan perlu di lakukan konfigurasi pada model admin, konfigurasinya seperti berikut:


Line 99: Line 94:
Sesuaikan dengan model admin yang anda miliki.
Sesuaikan dengan model admin yang anda miliki.


4.      Pengetesan
== 4.      Pengetesan ==
 
Pastikan semua telah berjalan sesuai dengan semestinya. Pada middleware di isi dengan auth:admin sesuai dengan konfigurasi yang telah di buat tadi.
Pastikan semua telah berjalan sesuai dengan semestinya. Pada middleware di isi dengan auth:admin sesuai dengan konfigurasi yang telah di buat tadi.



Latest revision as of 23:35, 6 December 2023

Secara default framework Laravel akan mengambil data pengguna dari tabel yang diatur sebagai model pengguna bawaan (default) yang biasanya adalah users.

Untuk mengambil data dari tabel lain dari pada tabel default users, Anda perlu menyesuaikan pengaturan dalam konfigurasi JWT untuk menggunakannya. Berikut langkah-langkahnya:

1.      Konfigurasi model provider

Untuk membuat Laravel mengambil data dari tabel selain user, yang perlu di lakukan adalah dengan melakukan konfigurasi model provider di dalam file config/auth.php.

Tambahkan kode dibawah ini di dalam array providers

// …. Kode lain  

// pada contoh ini menggunakan table  'admins'

  'admins' => [

      'driver' => 'eloquent',

      'model' => App\Models\Admin::class,

  ],

2.      Konfigurasi jwt passport

Setelah menambahkan provider seperti diatas. Langkah selanjutnya adalah mengkonfigurasi agar provider admis bisa di gunakan. Tambahkan kode ini di dalam array guard

'guards' => [

// ….. kode lainnya


      'admin' => [

          'driver' => 'passport',

          'provider' => 'admins',

      ],

  ],

Perhatikan bahwa provider telah mengarah pada provider yang telah di buat sebelumnya.

3.      Konfigruasi model Admin

Agar dapat berjalan perlu di lakukan konfigurasi pada model admin, konfigurasinya seperti berikut:

namespace App\Models;


use Illuminate\Contracts\Auth\Authenticatable;

use Illuminate\Database\Eloquent\Model;

use Illuminate\Auth\Authenticatable as AuthenticableTrait;


class Admin extends Model implements Authenticatable

{

  use AuthenticableTrait;


  // Sesuaikan sesuai dengan nama tabel dan kolom yang digunakan untuk admin

  protected $table = 'admins';

  protected $primaryKey = 'id';

  // ... definisikan atribut lainnya


  public function getAuthIdentifierName()

   {

      return 'id'; // Ganti dengan nama kolom yang merupakan identifier untuk admin

   }


  public function getAuthIdentifier()

   {

      return $this->{$this->getAuthIdentifierName()};

   }


  // Metode lain yang diperlukan, seperti getAuthPassword, dll.

  // ...

}


Sesuaikan dengan model admin yang anda miliki.

4.      Pengetesan

Pastikan semua telah berjalan sesuai dengan semestinya. Pada middleware di isi dengan auth:admin sesuai dengan konfigurasi yang telah di buat tadi.

Route::middleware('auth:admin')->get('/dashboard, function () {

  // ...

});


Dengan langkah-langkah ini, Anda akan menggunakan model Admin untuk otentikasi dengan JWT daripada model User.