Membangun REST API dengan Laravel 11 dan Autentikasi JWT: Login, profile dan logout

Rivan N.
2 min readAug 5, 2024

--

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!

--

--

Rivan N.
Rivan N.

Written by Rivan N.

0 Followers

Berbicara tentang teknologi, seni dan sastra yang tiada lain semua itu anugrah dari Sang Pemilik Semesta.

No responses yet