12 WEB Modul Multi Auth
12 WEB Modul Multi Auth
Mata Pelajaran :
Komp. Keahlian :
PWPB
Multi- Auth Rekayasa Perangkat Lunak
Pertemuan :
Laravel 9
Guru :
Kelas/Semester : XII/1
Aris Diantoro, S.Kom
A. Tujuan Praktikum
Setelah melakukan praktikum siswa diharapkan dapat :
➢ Siswa mampu memahami langkah pembuatan multi-auth pada laravel 9
➢ Siswa mampu membuat multi-auth pada laravel 9
➢ Siswa mampu menganalisis multi-auth pada laravel 9
➢ Siswa mampu memodifikasi multi-auth pada laravel 9
B. Dasar Teori
Login Multi User maksudnya login yang bisa dilakukan oleh lebih dari satu pengguna.
Login multi user ini biasanya digunakan oleh Website ataupun Aplikasi berbasis web yang
memang dirancang untuk bisa digunakan oleh banyak pengguna dalam waktu bersamaan.
Sebuah halaman login bisa saja dirancang untuk hanya dapat menerima satu user saja atau juga
bisa dirancang untuk dapat menerima banyak user/pengguna yang berbeda – beda (multi user)
Berikut praktikum dengan contoh sederhana bagaimana membuat halaman login multi
user. Nantinya user akan dibedakan menjadi dua yaitu user ‘admin’ dan ‘user’. Admin akan
diberi level 1 dan user akan diberikan nilai dengan level 2. Sehingga dalam prosesnya nanti
diharapkan ketika ada pengguna yang login dengan level 1 ataupun 2 akan diarahkan ke
halaman yang sudah ditentukan yang sesuai dengan levelnya masing – masing.
Dalam contoh kali ini halaman admin akan diberi session admin sehingga hanya admin saja
yang dapat mengaksesnya, begitupun dengan halaman user, hanya user saja yang dapat
mengaksesnya. Pengguna yang akan login harus menggunakan email + password yang sudah
terdaftar atau tersimpan di database,data – data pengguna yang tersimpan di database memiliki
level masing – masing, dalam contoh kali ini ada dua level yang dibuat yaitu level 1 dan level
2
Ketika login di proses sistem akan memeriksa level user yang digunakan kemudian
mengklasifikasikan user yang masuk berdasarkan levelnya. Ketika sudah diketahui level yang
digunakan untuk login, maka secara otomatis sistem akan mengirim user yang berhasil login
kehalaman yang sesuai dengan level yang digunakan.
Pada hakikatnya session dan level user yang sudah diset memainkan peranan penting
dalam pembuatan halaman login multi user. Terkadang mungkin sebuah halaman yang
dirancang untuk dapat digunakan secara bersama oleh user yang berbeda – beda bisa lebih
rumit dan kompleks lagi.
Langkah 1
Atur cmd pada c:\xampp\htdocs
Langkah 2
composer create-project laravel/laravel multi-auth
Langkah 3
cd multi-auth
Langkah 4
Set Up database pada file *.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=multi-auth
DB_USERNAME=root
DB_PASSWORD=
Langkah 5
Buat database
Langkah 6
Buka
database\migrations\2014_10_12_000000_create_users_table.php
Lalu fokus pada tanda hijau
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->boolean('is_admin')->nullable();
$table->rememberToken();
$table->timestamps();
Langkah 7
Buka file User.php pada app/models
Lalu fokus pada tanda hijau
protected $fillable = [
'name',
'email',
'password',
'is_admin'
];
protected $hidden = [
'password',
'remember_token',
'two_factor_recovery_codes',
'two_factor_secret',
];
Langkah 8
Php artisan migrate
Langkah 9
composer require laravel/ui
Langkah 10
php artisan ui bootstrap --auth
Langkah 11
Npm install
Langkah 12
Npm run dev
Langkah 13
php artisan make:middleware IsAdmin
Langkah 14
Open app/Http/middleware/IsAdmin.php
Langkah 15
Sesuaikan code IsAdmin.php seperti contoh dibawah ini
public function handle($request, Closure $next)
{
if(auth()->user()->is_admin == 1){
return $next($request);
}
Langkah 16
Open app/Http/Kernel.php
Langkah 17
Fokus pada penambahan code pada tanda hijau
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \App\Http\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'is_admin' => \App\Http\Middleware\IsAdmin::class,
];
Langkah 18
Buka routes -> web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Langkah 19
Lalu buat file baru dengan nama admin-home.blade.php dan tambahkan script dibawah 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-header">Dashboard</div>
<div class="card-body">
@if(session('login-success'))
<div class="alert alert-success" role="alert">
{{ session('login-success') }}
</div>
@endif
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
You are admin.
</div>
</div>
</div>
</div>
</div>
@endsection
Langkah 21
Konfigurasi LoginController yang berada pada app/Http/Controllers/Auth/LoginController
public function login(Request $request)
{
$request->validate([
'email' => 'required|email',
'password' => 'required'
]);
if(! auth()->attempt($credentials)){
return redirect()->route('login')
->with('error','Email-Address And Password Are Wrong.');
}
if (auth()->user()->is_admin == 1) {
return redirect()->route('admin.home');
}
return redirect()->route('home');
}
Langkah 22
Buat data dummy di shedder dengan cara
php artisan make:seeder UsersSeeder
Lalu buka file UserSeeder.php di database/seeders/UserSeeder.php dan konfigurasi kode
dibawah ini
$usersData = [
[
'name' =>'Admin',
'email' =>'[email protected]',
'is_admin' => 1,
'password'=> bcrypt('12345678'),
],
[
'name' => 'User',
'email' => '[email protected]',
'is_admin' => 0,
'password'=> bcrypt('12345678'),
],
];
Langkah 23
php artisan db:seed
Langkah 24
Php artisan serve
Langkah 25
Cek aplikasi multi-auth
Tampilan user
Tampilan admin