Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
January 9, 2022 10:06 am GMT

Menggunakan Filters Di Codeigniter 4 Sebagai Middleware

Tutorial kali ini akan membahas penggunaan Filters sebagai middleware di Codeigniter 4.

Apa itu Middleware?

Middleware di dunia pemrograman web adalah software layer yang menghubungkan antara request dengan controller.Hal paling umum adalah authentication.Selain itu juga bisa digunakan untuk beberapa hal seperti :

  1. Authorization
  2. Validasi dan Sanitasi Input
  3. Logger
  4. CSRF
  5. Dan Lain-lain

Middleware membuat kode kita lebih clean , reusable, maintainable dan readable.Karena membuat controller hanya akan fokus dalam proses alur bisnis tanpa harus melakukan hal-hal lain seperti validasi login,input dan lain-lain.Umumnya middleware dipasang di router terutama untuk framework yang menganut sistem MVC seperti Codeigniter 4,tapi tidak selalu begitu tergantung aturan framework masing-masing.

Menggunakan Filters sebagai Middleware

Sebagai contoh kita akan membuat middleware sederhana Authentication di Codeigniter 4 untuk mengcheck apakah user sudah login.

Membuat Filters

Pertama buat Filters baru di app\Filters bernama AuthFilter.php,lalu isi dengan kode dibawah.

<?php namespace App\Filters;use CodeIgniter\HTTP\RequestInterface;use CodeIgniter\HTTP\ResponseInterface;use CodeIgniter\Filters\FilterInterface;class AuthFilter implements FilterInterface{    public function before(RequestInterface $request)    {        if (!session()->islogin)        {            echo "invalid";            return redirect()->to(base_url('/auth'))->with('error', "Invalid Credential");        }        // Do something here    }    //--------------------------------------------------------------------    public function after(RequestInterface $request, ResponseInterface $response)    {        // Do something here    }}

Bisa dilihat pada kode diatas kita menambahkan kode di fungsi before jadi dijalankan sebelum masuk ke controller.Fungsinya sangat sederhana hanya mengcheck apakah session()->isLogin ,jika tidak ada akan redirect ke halaman login dengan memberikan pesan Invalid Credential.

Menambahkan Filters ke Config

Tahap selanjutnya adalah menambahkan AuthFilter yang sudah dibuat ke dalam Config agar bisa digunakan.Buka File Filters.php di folder app\Config.

Tambahkan Filters yang dibuat tadi sehingga menjadi seperti dibawah ini.

<?php namespace Config;use CodeIgniter\Config\BaseConfig;class Filters extends BaseConfig{    // Makes reading things below nicer,    // and simpler to change out script that's used.    public $aliases = [        'csrf'     => \CodeIgniter\Filters\CSRF::class,        'toolbar'  => \CodeIgniter\Filters\DebugToolbar::class,        'honeypot' => \CodeIgniter\Filters\Honeypot::class,        'authfilter' => \App\Filters\AuthFilter::class    ];

Kita beri nama authfilter agar mudah dipanggil.

Menggunakan Filters di Router

Untuk menggunakan Filters buka file Routes.php di folder app\Config.

Untuk penggunaan router group ubah menjadi kode dibawah ini.

<?php//skill$routes->group('skill', ['filter' => 'authfilter'], function($routes) {    $routes->get('/', 'Skill::index');    $routes->get('add', 'Skill::add');    $routes->post('add', 'Skill::store');});

Jadi setiap kali route skill dipanggil akan mengcheck apakah sudah login atau tidak.

Untuk penggunaan router bisa.

<?php$routes->get('/dashboard', 'Home::index', ['filter' => 'authfilter']);

Sekian tutorial kali ini ,jika ada yang kurang paham bisa ditanyakan jangan dipendam.


Original Link: https://dev.to/medan_in_code/menggunakan-filters-di-codeigniter-4-sebagai-middleware-22g

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To