Membangun REST API dengan Laravel 11 dan Autentikasi JWT: Login, profile dan logout
Halo Codingers!
Kali ini, kita akan membahas bagaimana cara membangun REST API menggunakan Laravel 11 dengan autentikasi JWT (JSON Web Token). Buat kalian yang baru mengenal JWT atau Laravel 11, jangan khawatir! Saya akan menjelaskan semuanya dengan bahasa yang sederhana dan jelas.
Kenapa Laravel 11 dan JWT?
Laravel adalah salah satu framework PHP yang sangat populer untuk membangun aplikasi web. Versi terbarunya, Laravel 11, menawarkan berbagai fitur canggih yang mempermudah pengembangan aplikasi. JWT, di sisi lain, adalah metode yang sangat efisien untuk menangani autentikasi dan otorisasi. Kombinasi ini menjadikannya pilihan yang sangat baik untuk membangun API yang aman dan handal.
Berikut uraian membuat REST API Menggunakan Framework Laravel 11:
Instalasi
- Clone Repositori: Pertama, clone repositori ini ke komputer kalian dengan perintah berikut:
git clone https://github.com/rivannurdin/laravel11-api.git
- Masuk ke Direktori Proyek: Setelah itu, masuk ke direktori proyek dengan:
cd laravel11-api
- Instalasi Dependensi: Instal semua dependensi yang dibutuhkan dengan Composer:
composer install
- Konfigurasi Environment: Salin file
.env.example
menjadi.env
:
cp .env.example .env
- Generate Application Key: Buat application key dengan perintah berikut:
php artisan key:generate
- Konfigurasi Database: Edit file
.env
untuk mengatur koneksi database kalian.
DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=nama_database
DB_USERNAME=username
DB_PASSWORD=password
- Migrasi Database: Jalankan migrasi untuk membuat tabel-tabel yang diperlukan:
php artisan migrate --seed
Generate JWT Secret Key: Terakhir, buat JWT secret key dengan:
php artisan jwt:secret
Endpoint API
Berikut adalah endpoint-endpoint yang tersedia dalam proyek ini:
Login Pengguna:
- Method:
POST
Endpoint:/api/login
Deskripsi: Untuk autentikasi pengguna dan menghasilkan token. - Request Body:
{
"email": "rivan@mail.com",
"password": "12345"
}
- Response:
{
"status": true,
"message": "Login User",
"data": {
"access_token": "{{ token }}",
"token_type": "bearer"
},
"meta": null
}
- Contoh Access Token:
{
"status": true,
"message": "Login User",
"data": {
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9sb2NhbGhvc3Q6ODAwMFwvdjFcL2FkbWluX3Jvb3RcL2F1dGhcL2xvZ2luIiwiaWF0IjoxNzA0MTg3MjgzLCJuYmYiOjE3MDQxODcyODMsImp0aSI6IkUwV3RpbkZnYTlRYzVESlciLCJzdWIiOjEwMCwicHJ2IjoiZGY4ODNkYjk3YmQwNWVmOGZmODUwODJkNjg2YzQ1ZTgzMmU1OTNhOSJ9.ULhSDE0xZw421mobi79anYjHK02G8LulPbGZwFV9V4E",
"token_type": "bearer"
},
"meta": null
}
Info Pengguna Saat Ini (Profile):
Method: GET
Endpoint: /api/profile
Deskripsi: Mengambil informasi pengguna yang sedang login. Sertakan token di header.
- Request Header:
Authorization: Bearer <token>
- Response:
{
"status": true,
"message": "Profile",
"data": {
"id": 1,
"name": "Rivan Nurdin",
"email": "rivan@mail.com"
},
"meta": null
}
Logout:
Method: POST
Endpoint: /api/logout
Deskripsi: Menginvalidasi token saat ini dan logout pengguna. Sertakan token di header.
- Request Header:
Authorization: Bearer <token>
- Response:
{
"status": true,
"message": "Logout",
"data": null,
"meta": null
}
Sumber dan Link
Untuk informasi lebih lanjut dan kode sumber proyek ini, kunjungi repositori GitHub kami di sini. 🚀
Jangan lupa untuk follow saya di Medium untuk artikel-artikel menarik lainnya tentang pengembangan perangkat lunak dan teknologi! Jika kalian punya pertanyaan atau ingin berbagi pengalaman, tinggalkan komentar di bawah ya!
Salam Makhluk Nokturnal!