بِسْمِ اللَّهِ Mudah-mudahan tutorial Codeigniter 4 – Login multiuser dengan library Myth:Auth ini bermanfaat
Sebuah sistem bisa dikatakan kurang lengkap jika tidak ada login user. Dengan login user tanpa ada pengaturan hak akses user juga percuma. Nah pada tutorial ini akan membahas bagaimana dalam Codeigniter 4 kita bisa mengolah Login multiuser dengan library Myth:Auth.
Persiapan Codeigniter 4 – Login multiuser dengan library Myth:Auth
Untuk bisa melanjutkan pastikan sudah ada ini:
Editor yang digunakan adalah Visual Studio Code
Project Codeigniter, untuk membuatnya bisa dilihat tutorial Codeigniter 4 Pengenalan dan Instalasi.
Sudah terkoneksi dengan database, silakan lihat Codeigniter 4 – Koneksi ke Database
Librari Myth:Auth untuk baca-baca bisa lihat di link ini
Pertama
Instalasi library Myth:Auth, Ada dua (2) pilihan dalam instalasi library Myth:Auth
- Composer
Dengan composer adalah cara instalasi yang paling mudah karena tinggal ketik perintah kemudian enter dan tinggal konfigurasi. Perintah yang digunakan untuk instalasi:
composer require myth/auth
- Instalasi Manual
Jika menggunakan cara manual, silakan kloning atau download file-file library tersebut link repositorinya yang juga ada di tutorial ini pada bagian Persiapan. Kemudian copy-kan file-file tersebut ke project anda.
Contoh : Jika file-file tersebut di-copy ke app/ThirdParty, untuk bisa menggunakan library yang di-copy maka yang harus dilakukan adalah mengupdate file app/Config/Autoload.php, disini tambahkan namespace Myth\Auth ke dalam array $psr4. Scriptnya seperti ini
$psr4 = [
'Config' => APPPATH . 'Config',
APP_NAMESPACE => APPPATH,
'App' => APPPATH,
'Myth\Auth' => APPPATH .'ThirdParty/myth-auth/src',
];
Saran saya menggunakan cara yang pertama yaitu dengan composer
Kedua
Untuk Instalasi dengan Composer, silakan buka terminal, dan ketikan perintah yang tadi disebutkan diatas
composer require myth/auth
Jika tidak ada error akan muncul seperti ini
Silakan cek pada folder vendor, cari myth dan tampilan berikut menandakan instalasi berhasil
Mohon diabaikan saja jika tidak ada error, silakan lanjut ke Konfigurasi
Kalau ada error, tapi mudah-mudahan tidak error. Karena instalasi dengan composer ini diharuskan dengan library versi yang stable. Jadi kalau ada error, untuk penanganannya bisa lihat di link ini. Caranya kurang lebih seperti ini, update file composer.json dengan menambahkan script ini
"minimum-stability": "beta",
"prefer-stable": true
Artinya composer akan bisa menginstal library jika masih versi beta tapi kalau sudah ada yang stable maka diambil yang versi stable. Tambahkan script diatas, sehingga seperti gambar berikut:
Kemudian ulangi command composer require myth/auth. Jika masih error, maka mau tidak mau harus instalasi secara manual.
Ketiga
Berikutnya ada konfigurasi, Anggap saja instalasi dengan composer berjalan lancar. Berikutnya adalah konfigurasi library myth/auth, yang pertama dilakukan adalah edit file app\Config\Email.php pada bagian fromName dan fromEmail. Perubahan ini untuk keperluan validasi, kirim email dan lain-lain.
Kemudian edit file app\Config\Validation.php dengan menambahkan script ini pada array ruleSets
\Myth\Auth\Authentication\Passwords\ValidationRules::class,
Kemudian disini dipastikan sudah terhubung database dengan benar, jalankan perintah ini di terminal
php spark migrate -all
Gambar ini menunjukkan migrasi tabel sudah benar dan selesai
Migrasi tabel berhasil, bisa dicek didatabase disana akan dibuatkan tabel-tabel (auth_activation_attempts, auth_groups, auth_groups_permissions, auth_groups_users, auth_logins, auth_permissions, auth_reset_attempts, auth_tokens, auth_users_permissions, users) untuk myth/auth seperti ini
Sampai disini sebenarnya library sudah bisa digunakan. Sudah bisa dicoba login meskipun belum ada user-nya. Nah sekarang waktunya untuk membuatnya otomatis. Contoh misalnya mau tambah berita harus ada role admin, mau edit juga sama. Tahap selanjutnya adalah membatasi akses user dengan route (Restricting by Route).
Pertama buka file app/Config/Filters.php tambahkan script ini pada aliases
'login' => \Myth\Auth\Filters\LoginFilter::class,
'role' => \Myth\Auth\Filters\RoleFilter::class,
'permission' => \Myth\Auth\Filters\PermissionFilter::class,
Keempat
Pilihan untuk pembatasan/restrict bisa tergantung dari tiap URL yang ada di web, yang dengan menambahkan URL yang di app/Config/Filters.php dan tambahkan di array $filters
public filters = [
'login' => ['before' => ['news/*']],
];
Atau kalau mau masuk web harus login terlebih dahulu, nah disini tambahkan LoginFilter
ke array $globals
seperti ini
public $globals = [
'before' => [
'honeypot',
'login',
...
Akhirnya
Silakan coba pilihan konfigurasi global, kemudian jalan server
php spark serve
Coba buka browser, kemudian buka http://localhost:8080 seharusnya langsung diarahkan ke login seperti ini
Tapi kalau ketemu seperti ini “This page isn’t working localhost redirected you too many times. Try clearing your cookies.”
Lakukan app/Config/App.php, edit public $indexPage = ‘index.php” menjadi public $indexPage = ”;
Coba lagi buka alamat tadi dibrowser
Silakan dicoba dan mudah-mudahan bermanfaat dan bisa dimengerti