Membuat Middleware Di Laravel

date 05 Aug 2021
date Sulfikardi
date 42
date Web Programming
Membuat Middleware Di Laravel

Middleware merupakan software yang menghubungkan bagian-bagian berbeda pada sebuah aplikasi atau rangkaian aplikasi. Middleware dapat diumpamakan menjadi beberapa bentuk, pertama middleware sebagai semacam lem yang menyatukan sebuah jaringan dan komputer-komputer yang terhubung di dalamnya. Middleware dapat berupa sebuah aplikasi tunggal, atau dapat berupa keseluruhan server.  Kedua middleware sebagai sebuah perangkat adapter (adapter device) yang dapat dijalankan dari sebuah printer baru ke sebuah komputer lama alias jadul. Adapter, atau middleware, menghubungkan dua perangkat, memungkinkan komunikasi di antaranya dan juga fungsionalitasnya.

Di Laravel kita dapat meggunakan Middleware sebagai filter dari request yang masuk ke aplikasi kita. Sebagai contoh, kita memiliki halaman profil user, yang mana halaman ini hanya bisa diakses oleh user yang telah login ke aplikasi kita, kita dapat menerapkan middleware untuk memfilter request yang menuju halaman profil, jika belum login maka middleware akan mengarahkan user pada halaman login. Tapi jika user sudah login makan middleware akan mengarahkan ke halaman profil.

Tujuan Menggunakan Middleware?

  1. Sebagai penengah antara request yang masuk dengan controller yang dituju.
  2. Dapat mencegat request yang masuk untuk diproses terlebih dahulu sebelum masuk ke controller.
  3. Reusable, dapat digunakan berkali-kali tanpa harus membuat ulang.
  4. Untuk mengamankan route kita agar tidak dapat diakses oleh user yang tidak memiliki akses.
     

Contoh Penggunaan Middleware Laravel 

Untuk membuat middlware baru, kita dapat menggunakan perintah berikut ini:

php artisan make:middleware CheckRole

Disini saya akan membuat middleware untuk mengecek role dari user yang login,untuk filter request pada middleware Admin, contohnya filter apakah user sudah login dan role “admin”

<?php

namespace App\Http\Middleware;

use Closure;

use Illuminate\Support\Facades\Auth;

 

class CheckRole

{

    /**

     * Handle an incoming request.

     *

     * @param  \Illuminate\Http\Request  $request

     * @param  \Closure  $next

     * @return mixed

     */

    public function handle($request, Closure $next)

    {

        if (Auth::check() && Auth::user()->role == 'admin') {

            return $next($request);

        }

        return redirect('/');

    }

}

 

Lalu Daftarkan middleware Admin pada app/Http/Kernel.php

 protected $routeMiddleware = [
        .....
      ‘admin’ => \App\Http\Middleware\CheckRole::class,
];

 

Lalu tambahkan middleware yang sudah kita daftarkan pada route kita

Route::get(‘posts’, ‘PostController@index’)->middleware(‘admin’); 

 

sul.png

Sulfikardi

Web Design & Web Programming

Halo, saya seorang Web Developer yang terbiasa mengembangkan website menggunakan HTML, CSS, Javascript, PHP, MYSQL, dan Laravel. Disini saya akan membagikan pengalaman saya dalam membangun dan mengembangan website yang responsif dan dinamis

Artikel Terkait

Halo, ada yang bisa kami bantu?