
Cara Membuat Fitur Authentication (Register & Login) di 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:
- Install Codeigniter via Composer
- Membuat Fitur Register
- Membuat Fitur Login
Yang harus dipersiapkan:
- Browser (ex: Google Chrome)
- Code Editor(ex: Visual Studio Code)
- Composer
- Local Server (ex: XAMPP)
- 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:
- Kamu membutuhkan framework dengan small footprint.
- Kamu membutuhkan sistem dengan performa atau kinerja yang luar biasa.
- Kamu menginginkan framework yang minim konfigurasi.
- Kamu menginginkan framework yang tidak mengharuskan untuk menggunakan command line.
- Kamu menginginkan framework yang fleksibel atau tidak mengharuskan kamu untuk mengikuti aturan coding.
- Kamu tidak tertarik large-scale monolithic libraries seperti PEAR.
- Kamu tidak ingin dipaksa untuk mempelajari bahasa templating.
- Kamu menghindari kerumitan atau menyukai simple solutions.
- 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.
Steps to Create Authentication Feature in Codeigniter 4
- Apa itu Codeigniter ?
- Apakah Codeigniter Tepat untuk kamu ?
- Kenapa Kita Perlu Fitur Authentication ?
- Membuat Fitur Authentication dengan Codeigniter 4
- Step 1: Install Codeigniter
- Step 2: Membuat Koneksi Database Codeigniter 4
- Step 3: Download dan Install myth-auth package
- Step 4: Update Autoload.php
- Step 5: Update Filter.php
- Step 6: Update Email.php
- Step 7: Update Validation.php
- Step 8: Update Config/Auth.php
- Step 9: Migrate
- Step 10: Update Routes.php
- Step 11: Update Controller
- Codeigniter 4 Authentication Testing
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.
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:
- Buka file php.ini yang terletak di direktori [xampp_folder_path]/php/php.ini.
- Cari ;extension=intl dan hapus karakter ;
- 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
- Cara Mengatasi Error XAMPP: MySQL shutdown unexpectedly 23 Oktober 2021 67046 views
- Laravel 8: REST API Authentication dengan Sanctum 17 September 2021 32220 views
- Tutorial CRUD (Create, Read, Update & Delete) Codeigniter 4 dengan Bootstrap 14 Oktober 2021 31779 views
- Membuat REST API CRUD di Laravel 8 dengan Sanctum 18 September 2021 28528 views
- Contoh Cara Menggunakan Sweet Alert di Laravel 8 27 Agustus 2021 27859 views