Tutorial Codeigniter #7: Membuat Fitur Login untuk Admin
Rencananya:
Pada aplikasi yang kita buat ini, akan ada dua jenis user yang bisa login, yakni admin dan customer.
Kita juga nanti akan membuat halaman khusus untuk customer.
Tapi…
Untuk saat ini, kita fokus dulu mengerjakan halaman admin.
Karena adminlah yang akan berperan pertama kali untuk menginput data produk dan data lainnya.
Baiklah, kita langsung saja masuk ke tutorial.
Jadi, berikut ini langkah-langkah yang harus kita kerjakan untuk membuat fitur login:
◻️ Membuat tabel users;
◻️ Membuat model User_model;
◻️ Membuat Controller Login;
◻️ Membuat halaman view untuk Login;
◻️ Uji Coba Login.
Pertama kita membutuhkan sebuah tabel untuk menyimpan data user.
Silahkan buka Phpmyadmin, kemudian buatlah tabel bernama users
dengan 11
kolom.
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(64) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`full_name` varchar(255) NOT NULL,
`phone` varchar(20) NOT NULL,
`role` enum('admin','customer') NOT NULL DEFAULT 'customer',
`last_login` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`photo` varchar(64) NOT NULL DEFAULT 'user_no_image.jpg',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`is_active` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`user_id`) );
Jika kamu sudah membuat tabel, sekarang coba perhatikan kolom-kolomnya.
Sebenarnya, kita hanya butuh tiga kolom untuk membuat login user_id
, username
, dan password
.
Tapi karena tabel users
akan kita gunakan untuk menampung data lengkap dari user, kita membutuhkan beberapa kolom lagi, yakni:
email
untuk menyimpan email user, agar bisa kita hubungi apabila ia meminta untuk reset passwordfull_name
untuk nama lengkap user;phone
untuk nomer telepon, yang bisa kita manfaatkan juga untuk SMS OTP atau 2FA;role
untuk membedakan user admin dan customer;last_login
untuk mencatat kapan terakhir user login;photo
untuk menyimpan foto dari user;created_at
untuk mencatat kapan user tersebut dibuat;is_active
untuk menyatakan user tersebut aktif atau tidak (sudah verifikasi email atau belum).
Kalau mau ditambahkan kolom lain juga boleh kok…
Tapi khusus untuk tutorial ini, kita pakai kolom ini aja ya.
Sebelum kita lanjut ke langkah berikutnya, kita butuh satu hal lagi nih di database.
Apa itu?
Sebuah user baru.
Kita anggap saja ini adalah user pertama yang akan kita pakai untuk uji coba aplikasi.
Cara buatnya gimana?
Cara buatnya, tinggal insert data ke tabel users.
Gampang kan?
Mari kita buat.
Masuk ke menu Insert, kemudian isi data user seperti ini:
Nah untuk password
, silahkan isi dengan hash yang dibuat dengan fungsi password_hash()
.
Kamu bisa buat melalui php interaktif seperti ini.
Password | Hash (Bcrypt) |
---|---|
123 | $2y$10$Dy4ySqOiDqKisEyoKJEsl.L2psUIjeKMwmp5W3iElRQLKZF0.kKbS |
admin | $2y$10$tonZkQrnGnp9n38rWeMTieLPNxtDfvy4Z/35Q4rlFObsm/xFnSae. |
user_id
adalah 1
.Mengapa sih password harus disimpan dalam bentuk hash?
Ini untuk keamanan, jika suatu saat ada orang yang berhasil membobol aplikasimu. Maka Si pembobol nggak akan tahu password-nya.
Oke dengan begini, tugas pertama kita selesai.
✅ Membuat tabel users;
◻️ Membuat model User_model;
◻️ Membuat Controller Login;
◻️ Membuat halaman view untuk Login;
◻️ Uji Coba Login.