Membuat Middleware pada Laravel

Jika Anda tahu manfaat penggunaan middleware pasti akan terkejut dalam mekanisme dalam memeriksa dan memfilter permintaan http yang akan masuk ke aplikasi Laravel Anda. Saya akan contohkan dengan penerapan peran (roles) untuk autentikas pengguna, apakah dia berhak masuk kehalaman pengelola (manage atau dashboard) atau tidak. Akan tetapi saya akan contohkan dengan memainkan logika pada parameter routing bukan semata-mata saya membuat autentikasi sepenuhnya.

Daftar isi:

Membuat middleware

Silakan jalankan di terminal dan masukan skrip dibawah ini untuk membuat middleware baru.

php artisan make:middleware Role

Catatan: Jika Anda suka menggunakan middleware yang banyak maka pemberian nama harus memberikan Middleware. Seperti nama middleware Role menjadi RoleMiddleware.

Daftarkan middleware di kernel

Jangan lupa untuk menambahkan middleware di kernel.php, perlu diketahu berkas kernel.php ada dia pada direktori app akan tetapi berkas tersebut berada pada direktori Http.

protected $routeMiddleware = [
    ...

    'role' => \App\Http\Middleware\Role::class,
];

Membuat routing simpel

Silakan tambahkan routing dibawah ini sebagai sarana contoh pada tutorial ini. Cara menerapkan middleware di dalam routing pun cukup mudah dengan menambahkan fungsi middleware itu sudah bisa dilakukan.

Route::get('/', function() {
    return view('welcome');
})->middleware('role:admin|waiter');

Route::get('404', function() {
    return 'halaman tidak tersedia yuukkk!';
})->name('404');

Agar tidak berulang

Route::middleware('role:admin|waiter')->group( function() {
    // semua routing
});

// lainnya
Route::group(['midleware' => 'role:admin|waiter'], function() {
    // semua routing
});

Catatan: Perharikan bagaimana cara memanggil middleware role:admin|waiter (role nama middleware dan admin|waiter merupakan nilai). Sebagian middleware tidak perlu menggunakan nilai, tetapi contoh ini digunakan dengan nilai untuk menerapkan role.

Bermain di berkas middleware Role

Angkap saja variabel $userRole didapat dari role pengguna setelah pengguna masuk ke aplikasi Anda. Kemudian akan di proses pada middleware Role ini apakah suatu pengguna berhak mengaksesnya atau tidak. Kalau pengguna tidak berhak masuk maka akan di alihkan ke halaman 404 dan begitu sebaliknya.

public function handle(Request $request, Closure $next, $roles)
{
    $userRole = 'member';

    if (!in_array($userRole, explode('|', $roles))) {
        return redirect()->route('404');
    }

    return $next($request);
}

Sekarang saatnya Anda coba dahulu apakah ini benar-benar berhasil atau tidak, tetap semangat.

Tutorial Laravel Untuk Pemula


1. Cara Install Laravel

2. Konfigurasi Dasar Laravel

3. Cara Membuat Routing Laravel

4. Membuat Controller Pada Laravel

5. Membuat View pada Laravel

6. Membuat Request di Laravel

7. Membuat Validasi pada Laravel

8. Menggunakan Templat Blade Laravel

9. Membuat Middleware pada Laravel