Panduan Membuat Login Multi User di Laravel – Dalam pengembangan aplikasi web, sistem login multi user adalah salah satu fitur penting untuk mengelola akses berdasarkan peran pengguna. Dengan menggunakan Laravel, Anda dapat dengan mudah membuat sistem login multi user yang aman dan efisien. Artikel ini akan memberikan panduan langkah demi langkah untuk membuat login multi user di Laravel, termasuk pembuatan tabel role
, middleware CheckRole
, dan implementasi pada rute aplikasi.
Langkah-Langkah Membuat Login Multi User di Laravel
1. Membuat Field role_id
di Tabel users
Langkah pertama adalah menambahkan field role_id
pada tabel users
untuk mengidentifikasi peran setiap pengguna.
a. Menambahkan Field role_id
Gunakan perintah berikut untuk membuat file migrasi baru:
php artisan make:migration add_role_id_to_users_table --table=users
Edit file migrasi yang dibuat di folder database/migrations
:
public function up() { Schema::table('users', function (Blueprint $table) { $table->unsignedBigInteger('role_id')->after('id')->nullable(); $table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade'); }); } public function down() { Schema::table('users', function (Blueprint $table) { $table->dropForeign(['role_id']); $table->dropColumn('role_id'); }); }
Jalankan migrasi:
php artisan migrate
2. Membuat Tabel roles
Tabel roles
akan digunakan untuk menyimpan informasi mengenai peran pengguna.
a. Membuat Migrasi untuk Tabel roles
Gunakan perintah berikut:
php artisan make:migration create_roles_table
Edit file migrasi:
public function up() { Schema::create('roles', function (Blueprint $table) { $table->id(); $table->string('name')->unique(); $table->timestamps(); }); } public function down() { Schema::dropIfExists('roles'); }
Jalankan migrasi:
php artisan migrate
b. Menambahkan Data Role Default
Gunakan seeder untuk mengisi data awal ke tabel roles
.
php artisan make:seeder RoleSeeder
Edit file RoleSeeder
:
use Illuminate\Database\Seeder; use App\Models\Role; class RoleSeeder extends Seeder { public function run() { Role::create(['name' => 'Admin']); Role::create(['name' => 'User']); } }
Jalankan seeder:
php artisan db:seed --class=RoleSeeder
3. Membuat Middleware CheckRole
Middleware CheckRole
digunakan untuk memfilter akses berdasarkan peran pengguna.
a. Membuat Middleware Baru
Gunakan perintah berikut:
php artisan make:middleware CheckRole
Edit file CheckRole.php
:
namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class CheckRole { public function handle(Request $request, Closure $next, $role) { if (!$request->user() || $request->user()->role->name !== $role) { abort(403, 'Unauthorized action.'); } return $next($request); } }
b. Mendaftarkan Middleware
Tambahkan middleware ke file app/Http/Kernel.php
:
protected $routeMiddleware = [ 'checkRole' => \App\Http\Middleware\CheckRole::class, ];
4. Implementasi Middleware pada Rute
Gunakan middleware CheckRole
pada rute untuk membatasi akses berdasarkan peran pengguna.
a. Menambahkan Relasi Role pada Model User
Edit file app/Models/User.php
:
public function role() { return $this->belongsTo(Role::class); }
b. Membuat Rute dengan Middleware
Tambahkan middleware pada rute di file routes/web.php
:
use App\Http\Controllers\AdminController; use App\Http\Controllers\UserController; Route::middleware(['auth', 'checkRole:Admin'])->group(function () { Route::get('/admin/dashboard', [AdminController::class, 'index']); }); Route::middleware(['auth', 'checkRole:User'])->group(function () { Route::get('/user/dashboard', [UserController::class, 'index']); });
Kesimpulan
Dengan mengikuti panduan ini, Anda dapat membangun sistem login multi user di Laravel yang aman dan fleksibel. Fitur ini memungkinkan Anda untuk mengelola akses berdasarkan peran pengguna, memastikan aplikasi tetap terorganisir dan efisien.
Implementasi sistem login multi user ini mencakup pembuatan tabel role
, penambahan field role_id
di tabel users
, middleware CheckRole
, dan integrasinya pada rute. Dengan langkah-langkah ini, Anda dapat menghadirkan pengalaman pengguna yang lebih terstruktu

Meninggalkan jejak di internet dengan menulis artikel
Leave a Reply