Belajar Framework CodeIgniter #25 | Membuat fitur login menggunakan Codeigniter
Muhammad Rafitulloh Nur Ramadhani
08 Juni 2023
Fitur login adalah salah satu komponen penting dalam pengembangan aplikasi web yang memungkinkan pengguna untuk mengakses bagian tertentu dari aplikasi dengan mengotentikasi diri. CodeIgniter 4 menyediakan berbagai alat dan fitur yang mempermudah pembuatan fitur login yang aman. Dalam artikel ini, kita akan membahas cara membuat fitur login menggunakan CodeIgniter 4.
Langkah pertama adalah mengkonfigurasi koneksi ke database dalam CodeIgniter 4. Pastikan Anda telah mengatur detail koneksi database Anda di berkas app/Config/Database.php
.
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'username_database',
'password' => 'password_database',
'database' => 'nama_database',
'DBDriver' => 'MySQLi',
// ...
];
Pastikan untuk mengganti 'username_database'
, 'password_database'
, dan 'nama_database'
dengan informasi yang sesuai.
Selanjutnya, buatlah model untuk mengelola data pengguna (user). Model ini akan digunakan untuk mengakses tabel pengguna dalam database. Misalnya, Anda dapat membuat model UserModel
seperti ini:
// app/Models/UserModel.php
namespace App\Models;
use CodeIgniter\Model;
class UserModel extends Model
{
protected $table = 'users'; // Nama tabel dalam database
protected $primaryKey = 'id'; // Kolom yang merupakan primary key
protected $allowedFields = ['username', 'email', 'password']; // Kolom yang dapat diisi
protected $returnType = 'array'; // Tipe data kembalian
// ...
}
Pastikan untuk mengganti nama tabel dan kolom sesuai dengan struktur database Anda.
Buatlah controller Auth
yang akan digunakan untuk mengelola proses login. Dalam controller ini, Anda akan menampilkan halaman login dan memproses login pengguna.
// app/Controllers/Auth.php
namespace App\Controllers;
class Auth extends BaseController
{
public function login()
{
return view('auth/login');
}
public function processLogin()
{
// Validasi formulir login di sini (opsional)
$model = new UserModel();
$username = $this->request->getPost('username');
$password = $this->request->getPost('password');
$user = $model->where('username', $username)->first();
if ($user && password_verify($password, $user['password'])) {
// Login berhasil, simpan informasi pengguna dalam sesi
$session = session();
$session->set('user_id', $user['id']);
// Redirect ke halaman dashboard atau halaman yang sesuai
return redirect()->to('/dashboard');
} else {
// Login gagal, tampilkan pesan error
return redirect()->to('/login')->with('error', 'Login gagal. Periksa kembali username dan password Anda.');
}
}
// Metode lain seperti logout (opsional)
}
Dalam metode login
, kita hanya menampilkan halaman login. Dalam metode processLogin
, kita memvalidasi data yang dikirimkan oleh formulir login, memeriksa kecocokan dengan data yang ada dalam database, dan jika berhasil, menyimpan informasi pengguna dalam sesi.
Buatlah tampilan (view) untuk halaman login. Misalnya, Anda dapat membuat tampilan auth/login.php
seperti ini:
<!-- app/Views/auth/login.php -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<?php if (session()->getFlashdata('error')): ?>
<div class="alert alert-danger"><?= session()->getFlashdata('error') ?></div>
<?php endif; ?>
<form method="post" action="<?= base_url('auth/processLogin') ?>">
<label for="username">Username:</label>
<input type="text" name="username" id="username" required>
<label for="password">Password:</label>
<input type="password" name="password" id="password" required>
<button type="submit">Login</button>
</form>
</body>
</html>
Dalam contoh ini, kita menggunakan formulir HTML untuk menerima input username dan password. Juga, kita menampilkan pesan error jika login gagal.
Anda juga dapat mengamankan area tertentu yang memerlukan login. Misalnya, Anda dapat menggunakan filter dalam CodeIgniter 4 untuk memeriksa apakah pengguna sudah login sebelum mengakses halaman tertentu.
// app/Filters/AuthFilter.php
namespace App\Filters;
use CodeIgniter\Filters\FilterInterface;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
class AuthFilter implements FilterInterface
{
public function before(RequestInterface $request, $arguments = null)
{
// Periksa apakah pengguna sudah login
if (!session()->get('user_id')) {
return redirect()->to('/login');
}
}
public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
{
// Tidak ada tindakan setelah request
}
}
Kemudian, terapkan filter ini pada controller atau metode yang memerlukan login.
protected $filters = [
'auth' => ['before' => ['dashboard', 'profile']],
];
Dengan mengikuti langkah-langkah di atas, Anda dapat membuat fitur login yang aman menggunakan CodeIgniter 4. Pastikan untuk menggantinya sesuai dengan kebutuhan aplikasi web Anda, dan pertimbangkan untuk menambahkan fitur tambahan seperti logout, reset password, atau fitur keamanan lainnya.
Artikel Lainnya Dengan Kategori Terkait :
1. Belajar Framework CodeIgniter #01 | Pengertian dan Kelebihan CodeIgniter
2. Belajar Framework CodeIgniter #02 | Cara Menggunakan CodeIgniter
3. Belajar Framework CodeIgniter #03 | Cara Membuat Controller Pada CodeIgniter
4. Belajar Framework CodeIgniter #04 | Cara Mengatur Default Controller
5. Belajar Framework CodeIgniter #05 | Cara Membuat View Pada CodeIgniter
6. Belajar Framework CodeIgniter #06 | Cara Parsing Data ke View CodeIgniter
7. Belajar Framework CodeIgniter #07 | Cara Membuat Beberapa View Pada CodeIgniter
8. Belajar Framework CodeIgniter #08 | Cara Load view pada CodeIgniter
9. Belajar Framework CodeIgniter #09 | Mengenal Helper HTML Pada CodeIgniter
10. Belajar Framework CodeIgniter #10 | Membuat Template Web Dengan CodeIgniter
11. Belajar Framework CodeIgniter #11 | Menghubungkan CodeIgniter Dengan Database MySql
12. Belajar Framework CodeIgniter #12 | Cara Membuat Form Validation Pada CodeIgniter
13. Belajar Framework CodeIgniter #13 | Membuat Upload File Dengan CodeIgniter
14. Belajar Framework CodeIgniter #14 | Membuat Download File Dengan CodeIgniter
15. Belajar Framework CodeIgniter #15 | Membuat Library Sendiri Di CodeIgniter
16. Belajar Framework CodeIgniter #16 | Pengertian Uri Segment Pada CodeIgniter
18. Belajar Framework CodeIgniter #19 | Membuat CRUD Dengan CodeIgniter, Input Data Ke Database
19. Belajar Framework CodeIgniter #20 | Membuat CRUD Dengan CodeIgniter, Hapus Data
20. Belajar Framework CodeIgniter #21 | Membuat CRUD Dengan CodeIgniter, Update Data
21. Belajar Framework CodeIgniter #22 | Cara Membuat Pagination Pada CodeIgniter
22. Belajar Framework CodeIgniter #23 | Cara Mendapatkan Data User Dengan CodeIgniter
23. Belajar Framework CodeIgniter #24 | Cara menampilkan data berdasarkan user login php CodeIgniter
24. Belajar Framework CodeIgniter #25 | Membuat fitur login menggunakan Codeigniter
25. Mempelajari Framework CodeInigter #17 Menghilangkan Index Pada CodeIgniter
Ahmad Dika Zulfahmi - 18 Februari 2025
Jungler Tank Bisa Kembali? Update yang Bisa Membawa Jungler Tank ke Meta Lagi
Ahmad Dika Zulfahmi - 06 Februari 2025
Setting Sensitivitas Auto Headshot Free Fire Terbaik
Ahmad Dika Zulfahmi - 03 Februari 2025
Flash Sale Minaplay! Top Up Diamond Free Fire Murah & Cepat!