Apakah Anda sedang mencari multiple authentication in laravel 7, Fitur Multi Auth di Laravel 7, jika iya? maka Anda berada di website yang tepat.
Semoga artikel berikut ini dapat bermanfaat.
Laravel adalah salah satu framework PHP yang paling populer untuk pengembangan aplikasi web. Salah satu fitur kuat yang dimiliki Laravel adalah kemampuan untuk mengimplementasikan multi auth, yang memungkinkan Anda mengelola otorisasi pengguna dengan lebih efisien. Dalam artikel ini, kita akan membahas cara mengimplementasikan multi auth di Laravel 7, langkah-langkah yang diperlukan, dan bagaimana Anda dapat menggunakannya dalam proyek Anda.
Apa Itu Multi Auth di Laravel?
Multi auth adalah fitur yang memungkinkan Anda untuk memiliki beberapa model pengguna yang berbeda dan mengautentikasi mereka secara terpisah. Ini sangat berguna dalam situasi di mana Anda memiliki jenis pengguna yang berbeda, seperti pengguna biasa dan administrator, dan Anda ingin mengelola otorisasi mereka secara terpisah. Misalnya, Anda mungkin ingin pengguna biasa dapat mendaftar, masuk, dan mengakses fitur tertentu, sementara administrator memiliki akses penuh ke semua fitur.
Dengan multi auth, Anda dapat mengatur guard authentication yang berbeda untuk setiap model pengguna. Anda juga dapat mengakses metode bawaan seperti Auth::user()
untuk mengambil pengguna yang saat ini terautentikasi.
Langkah 1: Membuat Model Pengguna Tambahan
Langkah pertama dalam mengimplementasikan multi auth di Laravel adalah membuat model pengguna tambahan. Model pengguna ini akan mewakili jenis pengguna yang berbeda dalam sistem Anda. Sebagai contoh, kita akan membuat model “Admin” sebagai pengguna tambahan.
Untuk membuat model pengguna baru, Anda dapat menggunakan perintah make:model
:
php artisan make:model Admin -m
Perintah di atas akan membuat model “Admin” beserta migrasi yang sesuai.
Langkah 2: Mengubah Migrasi Model Pengguna Tambahan
Kemudian, Anda perlu mengedit berkas migrasi yang telah dibuat untuk model pengguna tambahan (dalam contoh ini, “Admin”). Anda harus menambahkan kolom yang diperlukan untuk model ini. Misalnya, Anda dapat menambahkan kolom “email” dan “password” seperti yang biasa ada pada model pengguna Laravel standar.
public function up()
{
Schema::create('admins', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
Jangan lupa untuk menjalankan migrasi ini dengan perintah:
php artisan migrate
Langkah 3: Mengatur Guard Authentication
Selanjutnya, Anda perlu mengatur guard authentication untuk model pengguna tambahan. Anda dapat melakukannya di dalam berkas config/auth.php
. Cari array guards
dan tambahkan guard baru untuk model pengguna Anda.
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [ // Nama guard baru
'driver' => 'session',
'provider' => 'admins', // Provider model pengguna tambahan
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
Langkah 4: Mengatur Provider Authentication
Selanjutnya, Anda perlu mengatur provider authentication untuk model pengguna tambahan. Anda dapat melakukannya juga di dalam berkas config/auth.php
. Cari array providers
dan tambahkan provider baru untuk model pengguna Anda.
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'admins' => [ // Nama provider baru
'driver' => 'eloquent',
'model' => App\Models\Admin::class, // Model pengguna tambahan
],
],
Langkah 5: Menggunakan Multi Auth dalam Proyek Anda
Setelah Anda mengatur guard dan provider authentication untuk model pengguna tambahan, Anda dapat menggunakannya dalam proyek Anda. Berikut adalah contoh bagaimana Anda dapat menggunakannya dalam rute dan controller.
Menggunakan Guard Authentication dalam Rute
Dalam berkas routes/web.php
, Anda dapat mengatur middleware untuk rute yang memerlukan autentikasi pengguna tambahan. Misalnya, jika Anda ingin melindungi rute yang hanya dapat diakses oleh administrator, Anda dapat melakukannya seperti ini:
Route::group(['middleware' => 'auth:admin'], function () {
// Rute-rute yang memerlukan autentikasi administrator
});
Menggunakan Guard Authentication dalam Controller
Anda juga dapat menggunakan guard authentication dalam controller. Untuk mengambil pengguna yang saat ini terautentikasi dengan guard tertentu, Anda dapat menggunakan metode auth()->guard('guard-name')->user()
. Misalnya, untuk mengambil pengguna yang saat ini terautentikasi sebagai administrator:
$admin = auth()->guard('admin')->user();
Kesimpulan
Mengimplementasikan multi auth di Laravel 7 adalah langkah yang berguna untuk mengelola otorisasi pengguna dengan lebih efisien, terutama jika Anda memiliki jenis pengguna yang berbeda dalam proyek Anda. Dalam artikel ini, kami telah menjelaskan langkah-langkah praktis untuk mencapai hal ini, mulai dari membuat model pengguna tambahan hingga mengatur guard dan provider authentication, serta cara menggunakannya dalam rute dan controller. Semoga panduan ini membantu Anda dalam pengembangan proyek Laravel Anda yang berikutnya.