Cara membuat custom tabel untuk JWT Passport: Difference between revisions
(Created page with "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 melakuka...") |
No edit summary |
||
| (4 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 | ||
< | <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, | ||
],</ | ],</code> | ||
== 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 adminprotected $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.