Cara Membuat Fitur Authentication (Register & Login) di Codeigniter 4

Cara Membuat Fitur Authentication (Register & Login) di Codeigniter 4

Admin
Admin・ 31 Juli 2021
11 min read ・ 18169 views
Series: Codeigniter 4

Authentication Codeigniter 4 - Pada artikel ini kami akan membagikan tutorial bagaimana cara membuat fitur authentication atau fitur register dan login dengan menggunakan framework codeigniter versi 4. Artikel ini sekaligus menjadi artikel pertama yang publish dari series tutorial codeigniter 4. Pada artikel ini juga kami akan mencoba menjelaskan dari dasar tentang codeigniter 4 dan berharap juga mudah dipahami untuk pemula.

Beberapa point yang akan kita pelajari di artikel ini:

  1. Install Codeigniter via Composer
  2. Membuat Fitur Register
  3. Membuat Fitur Login

Yang harus dipersiapkan:

  1. Browser (ex: Google Chrome)
  2. Code Editor(ex: Visual Studio Code)
  3. Composer
  4. Local Server (ex: XAMPP)
  5. Internet

Apa itu Codeigniter ?

Codeigniter merupakan Application Development Framework atau toolkit untuk developer yang sedang membangun suatu situs web atau aplikasi berbasis web menggunakan PHP. Tujuan dibuatnya codeigniter adalah untuk membantu mengembangkan suatu project lebih cepat daripada memulainya dengan membuat atau menulis kode-kode mulai dari awal, dengan tersedianya library-library untuk mengerjakan tugas-tugas yang umumnya dibutuhkan, serta simple interface dan struktur logis untuk  mengakses library. Codeigniter memungkinkan kita secara kreatif fokus pada project kita dengan meminimalkan jumlah kode yang diperlukan untuk tugas tertentu.

Codeigniter dibuat sefleksibel mungkin, memungkinkan kita untuk bekerja dengan cara yang kita inginkan, tidak dipaksa untuk bekerja dengan cara tertentu. Framework Codeigniter memiliki bagian inti dengan mudah dikembangkan atau diganti sepenuhnya untuk membuat sistem bekerja seperti yang kita butuhkan. Singkatnya, codeigniter adalah framework yang mencoba menyediakan tool yang kita butuhkan.

Apakah Codeigniter Tepat untuk kamu ?

Codeigniter tepat untuk kamu jika:

  1. Kamu membutuhkan framework dengan small footprint.
  2. Kamu membutuhkan sistem dengan performa atau kinerja yang luar biasa.
  3. Kamu menginginkan framework yang minim konfigurasi.
  4. Kamu menginginkan framework yang tidak mengharuskan untuk menggunakan command line.
  5. Kamu menginginkan framework yang fleksibel atau tidak mengharuskan kamu untuk mengikuti aturan coding.
  6. Kamu tidak tertarik  large-scale monolithic libraries seperti PEAR.
  7. Kamu tidak ingin dipaksa untuk mempelajari bahasa templating.
  8. Kamu menghindari kerumitan atau menyukai simple solutions.
  9. Kamu membutuhkan dokumentasi yang jelas dan menyeluruh.

Source: Codeigniter

Kenapa Kita Perlu Fitur Authentication ?

Jika kita membuat program atau sistem seperti toko online, market place, sistem informasi dan lain-lain yang memuat data-data penting seperti document, data user dan data-data penting lainnya, kita perlu membuat fitur authentication untuk memberikan keamanan data atau agar data kita tidak diambil oleh orang-orang yang tidak bertanggung jawab yang bisa disalahgunakan.

Membuat Fitur Authentication dengan Codeigniter 4

Baiklah, langsung saja kita masuk ke koding yang diawali di awali dengan install codeigniter sampai dengan membuat fitur logout.

Step 1: Install Codeigniter

Sejak codeigniter 4 dirilis, sekarang install codeigniter sudah bisa via composer (sama dengan install laravel). Jadi untuk cara installasi codeigniter 4 ini bisa dilakukan dengan beberapa cara yang berbeda yaitu cara manual, install dengan composer atau menggunkana Git. Pada artikel ini kita akan mencobanya dengan install codeigniter via composer, tapi jika kamu mau menggunakan cara manual juga tidak masalah.

composer create-project codeigniter4/appstarter codeigniter4

Untuk install codeigniter 4 via composer, bisa langsung saja membuka terminal kemudian masuk ke direktori dimana kita ingin meletakkan atau menginstall project codeigniter 4 ini. Kemudian, jalankan perintah seperti contoh di atas pada terminal. Dengan perintah seperti di atas, kita akan menginstall codeigniter 4 yang akan kita beri nama codeigniter4. Apa yang akan terjadi jika kita tidak menyertakan codeigniter4 saat install codeigniter 4 via composer ? jika kita hanya menjalankan perintah composer create-project codeigniter4/appstarter maka proses installasi tetap bisa berjalan dan akan membuatkan kita folder project codeigniter 4 dengan nama appstarter.

Error saat install codeigniter 4 via composer

Jika pada proses installasi codeigniter 4 via composer terjadi error  seperti gambar di atas, itu karena PHP yang kamu gunakan tidak memiliki ekstensi intl.Ekstensi intl bergunakan untuk memformat mata uang atau currency, nomor dan tanggal atau waktu serta susunan yang sesuai dengan UCA, untuk pemformatan pesan dan normalisasi teks dan lain-lain. Jika kamu menggunakan XAMPP sebagai local server kamu, coba ikuti langkah-langkah di bawah ini:

  1. Buka file php.ini yang terletak di direktori [xampp_folder_path]/php/php.ini.
  2. Cari ;extension=intl dan hapus karakter ;
  3. Save, kemudian restart Apache

Setelah proses installasi sudah selesai, sekarang kita bisa membuka project codeigniter kita dengan perintah php spark serve. Buka project codeigniter 4 kita di browser dengan url http://localhost:8080.

Step 2: Membuat Koneksi Database Codeigniter 4

Sebelum melanjutkan tutorial membuat fitur authentication atau fitur register dan login di codeigniter 4, kita akan membuat database baru terlebih dahulu dan kemudian menyesuaikan konfigurasinya. Jika kamu menggunakan XAMPP, silahkan buat database baru di localhost/phpmyadmin. Sebagai contoh, kita akan membuat database baru dengan nama codeigniter4.

Kemudian, kita perlu menyesuaikan konfigurasi di file env. Silahkan buka file env, cari record seperti di bawah ini

# CI_ENVIRONMENT = production

hapus tanda pagar (#), kemudian ubah menjadi development seperti di bawah ini.

CI_ENVIRONMENT = development

Kemudian cari database configuration record seperti di bawah ini

# database.default.hostname = localhost
# database.default.database = ci4
# database.default.username = root
# database.default.password = root
# database.default.DBDriver = MySQLi
# database.default.DBPrefix =

hapus tanda pagar (#), kemudian sesuaikan record database.default.database dengan nama database yang baru saja dibuat dan sesuaikan juga username dan passwordnya. Sehingga database configuration record akan menjadi seperti di bawah ini.

database.default.hostname = localhost
database.default.database = codeigniter4
database.default.username = root
database.default.password = 
database.default.DBDriver = MySQLi
database.default.DBPrefix =

Oke, sekarang project codeigniter 4 sudah berhasil terhubung atau terkoneksi dengan database. Selanjutnya kita akan mencoba fitur migration dari codeigniter 4.

Step 3: Download dan Install myth-auth package

Pada artikel tutorial membuat authentication pada codeigniter 4 ini, kita akan menggunakan myth-auth package untuk mempercepat pembuatan fitur authentication (register dan login).

cd app/ThirdParty
git clone https://github.com/lonnieezell/myth-auth.git

Masuk terlebih dahulu di direktori ThridParty dengan perintah cd app/ThirdParty, kemudian jalankan git clone https://github.com/lonnieezell/myth-auth.git untuk mulai menginstall atau cloning myth auth package.

Step 4: Update Autoload.php

public $psr4 = [
		APP_NAMESPACE => APPPATH, // For custom app namespace
		'Config'      => APPPATH . 'Config',
		'App'         => APPPATH,
		'Myth\Auth'   => APPPATH .'ThirdParty/myth-auth/src',
	];

Sekarang buka file app/Config/Autoload.php, lalu pada method $psr4 update seperti script di atas. Pada langkah ini, kita menambahkan 'App' => APPPATH dan 'Myth\Auth' => APPPATH. 'ThirdParty/myth-auth/src' .

Step 5: Update Filter.php

public $aliases = [
		'csrf'     => CSRF::class,
		'toolbar'  => DebugToolbar::class,
		'honeypot' => Honeypot::class,
		'login'      => \Myth\Auth\Filters\LoginFilter::class,
		'role'       => \Myth\Auth\Filters\RoleFilter::class,
		'permission' => \Myth\Auth\Filters\PermissionFilter::class,
	];

Kemudian buka file app/Config/Filter.php, update alases dengan penambahan script seperti di atas.

Step 6: Update Email.php

public $fromEmail = "codelapan@mail.com";
public $fromName = "codelapan";

Pada file app/Config/Email.php atau lebih tepatnya di bagian $fromEmail dan $fromName silahkan sesuaikan dengan email dan nama kalian seperti contoh script di atas. Script di atas merupakan settingan email yang digunakan untuk mengirimkan email seperti email verification, forgot password dan fitur lainnya yang menggunakan email.

Step 7: Update Validation.php

public $ruleSets = [
	Rules::class,
	FormatRules::class,
	FileRules::class,
	CreditCardRules::class,
	\Myth\Auth\Authentication\Passwords\ValidationRules::class,
];

Masih di area config, kali ini kita perlu menambahkan script di file Validation.php. Silahkan buka file tersebut, lalu update atau tambahkan script $ruleSets seperti contoh di atas.

Step 8: Update Config/Auth.php

public $requireActivation = null;

Oke, hampir selesai. Sekarang buka file Auth.php yang terletak di direktori app/ThirdParty/myth-auth/src/Config. Pada bagian public $requireActivation, ubah nilainya dengan null. Apa fungsi dari script tersebut ? script tersebut berfungsi untuk membuat fitur email verification untuk aktivasi user. Karena di tutorial ini kita hanya mencobanya di local, jadi saya pikir tidak perlu email activation.

Step 9: Migrate

cd ../..
php spark migrate -all

Jika proses download atau cloning myth-auth package dan configuration sudah selesai, kita bisa kembali lagi ke direktori root dengan perintah cd ../.. kemudian jalankan perintah php spark migrate all untuk memigrasi file migration (termasuk file migration bawaan myth-auth packagee) ke database yang telah kita buat di langkah sebelumnya.

Step 10: Update Routes.php

$routes->get('/', 'Home::index');
$routes->group('', ['filter' => 'login'], function($routes){
    $routes->get('dashboard', 'Home::dashboard');
});

Selanjutnya, buka file app/Config/Routes.php dan tambahkan route baru dengan script seperti di atas.

Step 11: Update Controller

public function dashboard()
    {
        return 'dashboard page';
    }

Setelah berhasil login, kita ingin mengarahkan user ke halaman dashboard. Tapi kita masih belum punya function dashboard di file Home.php. Jadi, di step ini kita menambahkan function baru untuk menampilkan halaman dashboard nantinya. Silahkan buka file app/Controllers/Home.php, lalu tambahkan function dashboard dengan kode seperti di atas. Untuk sementara, function dashboard tersebut akan return 'dashboard page'.

return redirect()->to($redirectURL)->withCookies()->with('message', lang('Auth.loginSuccess'));

Kemudian, buka file AuthController.php yang terdapat di direktori app/ThirdParty/myth-auth/src/Controllers/AuthController.php. Cari kode seperti di atas, lalu ubah menjadi seperti di bawah ini.

return redirect()->to('dashboard');

Jadi setelah login berhasil, user akan diarahkan ke halaman dashboard.

Codeigniter 4 Authentication Testing

Okay, it's done. Setelah melalui langkah-langkah yang lumayan panjang namun tidak terlalu sulit, yang dimulai dari install codeigniter 4 via composer, install atau clone myth auth package, sampai dengan setup file-file config, sekarang kita sudah sampai di langah pengujian fitur authentication codeigniter 4 yang telah kita buat dengan myth auth package.

Untuk mulai melihat hasil dari yang kita buat ini, silahkan jalankan codeigniter dengan perintah php spark serve. Kemudian buka di brower dengan URL localhost:8080/register dan coba isikan data pada form-form yang tersedia seperti email, username dan password lalu klik register.

Sampai di langkah ini kita sudah berhasil membuat fitur authentication di codeigniter 4 dengan menggunakan myth auth package dan pada langkah pengujian kita juga sudah berhasil register dan login.

Selamat mencoba, semoga artikel ini bisa bermanfaat dan sampai jumpa di artikel berikutnya. 🚀 🚀 🚀

 

Credit: Work illustrations by Storyset

 

Tinggalkan Komentar
Loading Comments