Header Ads

Modul Membuat Multi User di Laravel dengan Middleware


1. Install Laravel

Installah sebuah fresh laravel versi 7, 9 dengan menjalankan perintah berikut ini di terminal atau cmd anda. composer create-project laravel/laravel latihan_multi
Untuk lokasi project bebas anda tentukan sendiri. 
1.1 INSTALL node.JS untuk NPM
download node js di nodejs.org dan install

2. Persiapan Database dan Migration

Buatlah sebuah database baru di dalam phpmyadmin dengan nama laravel. Karena nama database yang kita buat adalah laravel, maka anda tidak perlu mengedit file .env. Tapi jika anda ingin nama database yang berbeda, anda juga harus mengedit nama database di dalam file .env

Setelah membuat sebuah database baru, selanjutnya masuk ke dalam project latihan_middleware dan buka folder database → migrations → 2014_10_12_000000_create_users_table.php. Lalu ubahlah isi dari public function up() dengan script yang ada di bawah ini



Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->enum('role', ['admin', 'penjual', 'pembeli'])->default('pembeli'); $table->rememberToken(); $table->timestamps(); });

Kemudian save, buka cmd lalu masuk ke direktori projek dan jalankan perintah berikut ini php artisan migrate perintah ini digunakan untuk memigrasi atau membuat tabel baru di dalam database.


3. Membuat Autentikasi Login

3.1. Setelah semua step di atas dijalankan, selanjutnya kita akan membuat autentikasi login pada laravel. Dimana form login, halaman login, dan proses loginnya dibuat langsung oleh laravel. Cara Membuatnya pertama masuk ke direktori project anda lalu jalankan perintah berikut ini di cmd atau terminal. composer require laravel

3.2. Tunggu proses instalasinya sampai selesai, lalu jalankan perintah berikut ini php artisan ui vue --auth lalu jalankan lagi perintah berikut ini npm install .Dan terakhir, jalankan lagi perintah berikut ini npm run dev

sampai tahap ini anda sudah berhasil membuat aplikasi laravel dengan autentikasi. Silahkan jalankan project dengan mengetikkan perintah php artisan. Hasilnya akan tampil 2 menu di pojok kanan atas layar, yaitu menu login dan register. Berikut ini adalah halaman register laravel.

laravel middleware sahretech
Tampilan halaman registrasi laravel



3.3. Silahkan daftarkan 3 akun yang berbeda ke dalam aplikasi laravel anda. Lalu buka phpmyadmin dan lihat!, datanya akan tampil seperti gambar di bawah ini. Secara default semua data yang didaftarkan rolenya adalah pembeli maka kita perlu merubah rolenya menjadi admin, penjual, dan pembeli. Karena di tahap selanjutnya kita akan membuat akses yang berbeda untuk tiap akun tersebut.

laravel middleware sahretech
Data akun laravel


Memang dalam studi kasus kali ini perubahan role user dilakukan secara manual, tapi ini sedikit gambaran bagi anda bahwa untuk membuat multi user harus ada identifikasi role. Pemberian role bisa anda sesuaikan dengan form dan proses yang dibuat.


4. Membuat Middleware dan Setting Middleware

4.1. Bagian ke-4 dan seterusnya adalah bagian inti dari tutorial ini. Cara membuat middleware di laravel sangat mudah sekali.  Jalankan perintah berikut ini untuk membuat middleware checkrole. php artisan make:middleware CheckRole

Maka sebuah middleware baru dengan nama CheckRole.php akan otomatis dibuat. Buka app → Http → Middelware → CheckRole.php. Lalu edit public function handle() dengan script di bawah ini


public function handle($request, Closure $next) { //jika akun yang login sesuai dengan role //maka silahkan akses //jika tidak sesuai akan diarahkan ke home $roles = array_slice(func_get_args(), 2); foreach ($roles as $role) { $user = \Auth::user()->role; if( $user == $role){ return $next($request); } } return redirect('/'); }


4.2. Kemudian, masuk ke folder app → Http → Kernel.php lalu tambahkan script di bawah ini di dalam bagian protected $routeMiddleware = [ .. ]


protected $routeMiddleware = [     .....     'checkRole' => \App\Http\Middleware\CheckRole::class, ];


Sampai tahap ini anda sudah selesai membuat middleware dan mensetting aturannya. Middleware anda siap untuk dipakai di dalam file web.php. Tapi sebelum kita pasang, kita akan membuat 3 file blade yang berbeda di bawah ini.



5. Membuat 3 Buah Blade

5.1. Buat sebuah file baru dengan nama admin.blade.php di dalam folder resources/views. Lalu isi file tersebut dengan script di bawah ini.



@extends('layouts.app') @section('content')     <div class="container">         <div class="row justify-content-center"> <div class="col-md-8"> <div class="card">                     <div class="card-body"> <h1>Ini adalah halaman admin</h1> </div> </div> </div> </div> </div> @endsection


5.2. Buat sebuah file baru dengan nama penjual.blade.php di dalam folder resources/views. Lalu isi file tersebut dengan script di bawah ini.



@extends('layouts.app') @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-body"> <h1>Ini adalah halaman penjual</h1> </div> </div> </div> </div> </div> @endsection


5.3. Buatlah sebuah file baru denga nama pembeli.blade.php di dalam folder resources/views. Lalu isi file tersebut dengan script di bawah ini.



@extends('layouts.app') @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-body"> <h1>Ini adalah halaman pembeli</h1> </div> </div> </div> </div> </div> @endsection


6. Edit Halaman Home

Buka halaman home.blade.php yang terletak di dalam folder resources/views. Copy script di bawah ini dan pastekan di bawah <div class="container">
        

<a class="navbar-brand" href="{{ url('/') }}">     {{ config('app.name', 'Laravel') }} </a> <ul class="navbar-nav me-auto mb-2 mb-lg-0">     <li class="nav-item">         <a class="nav-link" aria-current="page" href="{{url('admin')}}">Halaman Admin</a>     </li>     <li class="nav-item">         <a class="nav-link" href="{{url('penjual')}}">Halaman Penjual</a>     </li>     <li class="nav-item">         <a class="nav-link" href="{{url('pembeli')}}">Halaman Pembeli</a>     </li> </ul>


7. Edit Routing

Buka file web.php, lalu tambahkan script di bawah ini di baris paling bawah file tersebut.
        

Route::get('admin', function () { return view('admin'); })->middleware('checkRole:admin'); Route::get('penjual', function () { return view('penjual'); })->middleware(['checkRole:penjual,admin']); Route::get('pembeli', function () { return view('pembeli'); })->middleware(['checkRole:pembeli,admin']);


8. Percobaan

Dalam projek ini admin dapat mengakses halaman penjual dan pembeli dan tidak sebaliknya. Middleware berfungsi untuk mengautentikasi http request yang masuk ke server. Jika user adalah admin maka routing ke halaman pembeli dan penjual dapat dilakukan dan tidak sebaliknya. Jalankan perintah php artisan untuk menjalankan project

Tidak ada komentar

Diberdayakan oleh Blogger.