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…


This content originally appeared on DEV Community and was authored by MedanInCode

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.


This content originally appeared on DEV Community and was authored by MedanInCode


Print Share Comment Cite Upload Translate Updates
APA

MedanInCode | Sciencx (2022-01-09T10:06:35+00:00) Menggunakan Filters Di Codeigniter 4 Sebagai Middleware. Retrieved from https://www.scien.cx/2022/01/09/menggunakan-filters-di-codeigniter-4-sebagai-middleware/

MLA
" » Menggunakan Filters Di Codeigniter 4 Sebagai Middleware." MedanInCode | Sciencx - Sunday January 9, 2022, https://www.scien.cx/2022/01/09/menggunakan-filters-di-codeigniter-4-sebagai-middleware/
HARVARD
MedanInCode | Sciencx Sunday January 9, 2022 » Menggunakan Filters Di Codeigniter 4 Sebagai Middleware., viewed ,<https://www.scien.cx/2022/01/09/menggunakan-filters-di-codeigniter-4-sebagai-middleware/>
VANCOUVER
MedanInCode | Sciencx - » Menggunakan Filters Di Codeigniter 4 Sebagai Middleware. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/01/09/menggunakan-filters-di-codeigniter-4-sebagai-middleware/
CHICAGO
" » Menggunakan Filters Di Codeigniter 4 Sebagai Middleware." MedanInCode | Sciencx - Accessed . https://www.scien.cx/2022/01/09/menggunakan-filters-di-codeigniter-4-sebagai-middleware/
IEEE
" » Menggunakan Filters Di Codeigniter 4 Sebagai Middleware." MedanInCode | Sciencx [Online]. Available: https://www.scien.cx/2022/01/09/menggunakan-filters-di-codeigniter-4-sebagai-middleware/. [Accessed: ]
rf:citation
» Menggunakan Filters Di Codeigniter 4 Sebagai Middleware | MedanInCode | Sciencx | https://www.scien.cx/2022/01/09/menggunakan-filters-di-codeigniter-4-sebagai-middleware/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.