Install Web App

Belajar Framework CodeIgniter #25 | Membuat fitur login menggunakan Codeigniter

profil-penulis

Muhammad Rafitulloh Nur Ramadhani

08 Juni 2023

Bagaimana Cara Membuat Fitur Login Menggunakan CodeIgniter 4

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 1: Konfigurasi Database

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.

Langkah 2: Membuat Model User

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.

Langkah 3: Membuat Controller Auth

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.

Langkah 4: Membuat Tampilan Login

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.

Langkah 5: Mengamankan Area yang Memerlukan Login (Opsional)

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']],
];

Kesimpulan

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

17. Belajar Framework CodeIgniter #18 | Membuat CRUD Dengan CodeIgniter, Menampilkan Data Dari Database

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

Masuk Terlebih dahulu untuk berkomentar

Paling baru
Lihat Lainnya