This post is also available in:
English
Hallo apa kabar teman semuanya, kali ini kita akan membahas Restful API dengan JWT Authentication. Sebelumnya untuk tutorial Codeigniter 4 kita telah membahas Login dan Register menggunakan Codeigniter 4.
Sebelum kita lanjutkan kita akan bahas apa yang di sebut dengan API dan JWT.
Bagi yang suka liat video bisa berkunjung ke video saya di sini Rest Api Login dan Register Dengan Codeigniter 4:
API adalah singkatan dari Application Program Interface, API adalah antarmuka yang memungkinkan aplikasi bertukar data. Untuk membuatnya lebih jelas, API adalah kumpulan fungsi yang dapat digunakan oleh programmer untuk membangun perangkat lunak dan aplikasi.
JWT adalah singkatan dari JSON Web Token, ini adalah standar terbuka (RFC 7519) yang mendefinisikan cara yang ringkas dan mandiri untuk mentransmisikan informasi antar pihak secara aman sebagai objek JSON. JWT umumnya digunakan untuk Otorisasi, Pertukaran Informasi dan lain-lain.
Sekarang kita akan buat aplikasinya.
Step 1: Install CodeIgniter 4
Install via composer:
composer create-project codeigniter4/appstarter ci-4-jwt

Step 2: Environment Codeigniter
Env. default CodeIgniter adalah produksi, ini adalah fitur keamanan untuk menambah keamanan aplikasi. Selanjutnya kita rubah nama file env menjadi .env tambahkan titik pada env anda. Setelah diganti namanya, selanjutnya buka file .env dan kita akan merubah beberapa perintah.
.env
CI_ENVIRONMENT = development

Step 3: Configure Database
Setelah mengatur env, kemudian akan mengkonfigurasi database. Anda dapat mengkonfigurasinya di .env atau pada file konfigurasi yang terletak di app/Config/Database.php. Untuk tutorial ini kita akan mengkonfigurasinya di app/Config/Database.php.
app/Config/Database.php.
Step 4: Model and Migration
Model – Class yang mewakili tabel database.
Migrasi – seperti kontrol versi untuk database yang memungkinkan kami untuk mengubah dan membagikan skema database ke tim anda.
Jalankan perintah ini di Terminal atau CMD untuk membuat model:
php spark make:model UserModel
buka model yang dibuat di app/Models/UserModel.php. Di dalam file Anda dapat melihat opsi konfigurasi, Anda dapat membaca dokumentasi untuk mempelajari lebih lanjut tentang opsi konfigurasinya. Sekarang kita akan memperbarui konfigurasi:
app/Models/UserModel.php
Setelah membuat model, kita kemudian akan membuat file migrasi.
Jalankan perintah ini di Terminal atau CMD untuk membuat migrasi:
php spark make:migration AddUser
Buka file migrasi yang dibuat di app/Database/Migrations/ dan tempel kode berikut:

Run the migration by executing the migrate
command:
php spark migrate
Step 5: Install JWT Package
Kemudian kita akan menginstal paket jwt menggunakan komposer:
composer require firebase/php-jwt

Setelah menginstal paket jwt, tambahkan JWT_SECRET pada file .env
.env
#--------------------------------------------------------------------
# JWT
#--------------------------------------------------------------------
JWT_SECRET = 'JWT SECRET KEY SAMPLE HERE'
Step 6: Create Controllers
Controller adalah orang yang bertanggung jawab untuk menerima Request dan mengembalikan Response.
Jalankan perintah ini di Terminal atau CMD untuk membuat Controller:
Setelah menjalankan perintah, itu akan membuat file yang terletak di app/Controllers. Buka file tersebut dan masukkan kode berikut:
app/Controllers/Login.php
app/Controllers/Register.php
app/Controllers/User.php
Step 7: Create Controller Filter
Filter Controller adalah Class yang memungkinkan kita untuk melakukan tindakan sebelum atau setelah dijalankan.
Kita sekarang akan membuat Filter yang akan digunakan untuk memeriksa apakah permintaan diizinkan dan memiliki otorisasi. Jalankan perintah ini di Terminal atau CMD:
php spark make:filter AuthFilter
Setelah menjalankan perintah, itu akan membuat file yang terletak di app/Filter. Buka file ini dan masukkan kode berikut:
Setelah membuat filter, kita harus menambahkannya ke konfigurasi filter yang terletak di app/Config/Filters.php. Kami akan membuat alias untuk filter kami.
app/Config/Filters.php
Step 8: Register Routes
Buka file konfigurasi di app/Config/Routes.php dan daftarkan rute ini:
$routes->group("api", function ($routes) {
$routes->post("register", "Register::index");
$routes->post("login", "Login::index");
$routes->get("users", "User::index", ['filter' => 'authFilter']);
});
Step 9: Run the Application
Sekarang setelah kita menyelesaikan langkah-langkah di atas, sekarang kita akan menjalankan aplikasi. Untuk menjalankan aplikasi, jalankan perintah ini:
php spark serve
Screenshots:
/api/register

/api/login

/api/users

Demikian tutorial yang bisa saya sampiakan, semoga bermanfaat untuk teman-teman semuanya. Terimakasih terlah berkunjung ke blog saya.
Jangan lupa untuk berkunjung ke tutorial yang lainnya:
Menghilangkan Public dan Index.php dari URL Codeigniter 4
Tutorial Codeigniter 4 ~ Login dan Register
Terimakasih.