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?
- Sebagai penengah antara request yang masuk dengan controller yang dituju.
- Dapat mencegat request yang masuk untuk diproses terlebih dahulu sebelum masuk ke controller.
- Reusable, dapat digunakan berkali-kali tanpa harus membuat ulang.
- 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’);
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