Febri Hidayan <a href="https://unsplash.com/@markusspiske" target="_blank">Markus Spiske</a> ONON <a href="https://unsplash.com" target="_blank">Unsplash</a>
Febri Hidayan Markus Spiske ONON Unsplash

Membuat Middleware Laravel

profil
Febri Hidayan
04 June 2021 ยท Baca 3 menit

Ada beberapa hal yang paling utama dan manfaat menggunakan middleware yang mana Anda bisa memeriksa memfilter setiap kali permintaan HTTP yang masuk ke dalam aplikasi. Misalnya jika aplikasi Anda buat mengharuskan pengguna masuk dulu ke aplikasi, maka Anda harus menjaga semua perutean HTTP dengan middleware agar bisa di arahkan ke perutean masuk aplikasi. Tidak kebayang jika aplikasi yang Anda buat bisa di akses oleh pengguna yang belum masuk ke aplikasi. Saya akan contohkan dengan peran pengguna yang mana ada perannya sebagai admin, member, dan premium.

Daftar isi:

Catatan: Sebelum mengikuti tutorial ini saya harapkan sudah menginstal projek Laravel atau projek yang sudah ada.

Langkah 1 - Membuat Routing

Sebagai langkah paling awal saya misalkan dengan cara ini yaitu memanfaatkan perutean Laravel. Jadi saya ibaratkan parameter peruten role sebagai peran pengguna misalnya admin atau member contohnya menjadi role/admin. Kemudian menambahkan fungsi middleware() yang argumennya berisi role:admin|premium, role yaitu nama middleware yang Anda akan buat di lankah selanjutnya dan admin|premium yaitu peran yang memiliki akses perutean dibawah ini. Silakan tambahkan skrip dibawah ini pada berkas web.php.

Route::get('role/{role}', function() {
    return 'Berhasil masuk';
})->middleware('role:admin|premium');

Langkah 2 - Membuat Middleware

Cara membuat berkas middleware sangat mudah di Laravel dengan manfaatkan artisan maka berkas middlewere di bawah ini akan dibuat, nama berkasnya adalah Role.php.

php artisan make:middleware Role

Sekarang daftarkan middleware Role ke berkas kernel.php pada direktori app/Http, lihat di bawah ini dan mohon sesuaikan.

protected $routeMiddleware = [
    // ...
    'role' => \App\Http\Middleware\Role::class
];

Setelah membuat berkas Role.php middleware sekarang masukan skrip di bawah ini.

public function handle(Request $request, Closure $next, $roles)
{
    // pembahasan 1
    $roles = explode('|', $roles);
    
    // pembahasan 2
    if (!in_array($request->role, $roles)) {
        return abort(404);
    }

    // pembahasan 3
    return $next($request);
}

Pembahasan:

  1. Akan membuat nilai untai (string) menjadi larik (array) dengan manfaatkan fungsi explode() dengan separator (|), maka nilai untai admin|premium (dari perutean) menjadi larik ['admin', 'premium'],
  2. Jika parameter perutean bernilai member ($request->role) maka akan diarahkan ke halaman 404 (abort(404)), Anda bisa memanfaatkan fungsi in_array() dengan kasus seperti ini, dan
  3. Jika nilai parameter perutean sama dengan yang telah diterapkan pada middleware perutean maka akan melanjutkan.

Langkah 3 - Uji Coba Middleware

Sekarang waktunya Anda menguji apakah berhasil middleware yang Anda buat saat ini, Silakan jalankan projek Laravel dengan membuat terminal lalu jalankan perintah di bawah ini.

php artisan serve

Selanjutnya buka tautan dengan daftar berikut:

  • http://127.0.0.1:8000/role/admin
  • http://127.0.0.1:8000/role/premium
  • http://127.0.0.1:8000/role/member

Sampai di sinilah tutorial kali ini yaaa dan semoga Anda berhasil melakukannya.


profil

DITULIS OLEH

Febri Hidayan

Belajar dari sekarang untuk meningkatkan ilmu dan karirmu. Amati Tiru Modifikasi