Authentication JWT Lumen 7
Authentication JWT Lumen 7 – Pada artikel kali ini kita akan belajar membuat authentication menggunakan JWT (JSON Web Token) pada Lumen 7.
Authentication JWT Lumen 7
Create Project
Buat project baru dengan nama lumen7-auth-jwt.
Dari command prom ketikkan perintah berikut:
1 2 3 4 |
cd H:\sourcecode composer create-project laravel/lumen lumen7-auth-jwt --prefer-dist |
Database
Buat database baru dengan nama lumen7_auth_jwt.
Dari command prompt ketikkan perintah berikut:
1 2 3 4 |
mysql -uroot -p CREATE DATABASE lumen7_auth_jwt; |
Configure Database
Selanjutnya buka file .env folder root project kemudian edit bagian DB menjadi seperti berikut:
1 2 3 4 5 6 7 8 |
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=lumen7_auth_jwt DB_USERNAME=root DB_PASSWORD=j.fUjHyL |
Simpan file .env
Install Dependency
Dari command prompt ketikkan perintah berikut:
1 2 3 4 5 |
cd lumen7-auth-jwt composer require chuckrincon/lumen-config-discover composer require tymon/jwt-auth:dev-develop |
Buat folder baru dengan nama config pada direktori Root Project.
Selanjutnya kita generete JWT dengan menggunakan perintah berikut:
1 2 3 4 |
mkdir config php artisan jwt:secret |
1 2 3 |
jwt-auth secret [9q2u4JAnAkjUAVrzz6AdBYZAYtwjW503R2c5OfMb6aLZsEQ4ZqjD1d1R6EI2VpAe] set successfully. |
auth.php
Buat file baru dengan nama auth.php pada folder config dan kemudian ketikkan script berikut:
Simpan file auth.php
Configuration
app.php
Buka file app.php pada folder bootstrap kemudian edit menjadi seperti berikut:
Simpan file app.php
Migrations
Create Users Table
Dari command prompt ketikkan perintah berikut:
1 2 3 |
php artisan make:migration create_users_table |
1 2 3 |
Created Migration: 2020_11_08_201451_create_users_table |
Buka file 2020_XXX_create_users_table.php pada folder database/migrations kemudian edit menjadi seperti berikut:
Simpan file 2020_XXX_create_users_table.php
Note: Nama file sesuaikan dengan hasil dari proses migration
Selanjutnya jalankan proses migrate dengan menggunakan perintah berikut:
1 2 3 |
php artisan migrate |
1 2 3 4 5 |
Migration table created successfully. Migrating: 2020_11_08_201451_create_users_table Migrated: 2020_11_08_201451_create_users_table (0.27 seconds) |
Model
User.php
Buka file User.php pada folder app kemudian edit menjadi seperti berikut:
Simpan file User.php
Controller
AuthController.php
Buat file baru dengan nama AuthController.php pada folder app/Http/Controllers kemudian ketikkan script berikut:
Simpan file AuthController.php
Routes
Buka file web.php pada folder routes kemudian edit menjadi seperti berikut:
Simpan file web.php
Enable CORS
CORS merupakan singkatan dari Cross Origin Resource Sharing, yaitu sebuah teknik menggunakan permintaan HTTP untuk mengizinkan browser pada suatu domain mendapatkan akses ke server pada sumber yang berbeda.
Buat file baru dengan nama CorsMiddleware.php pada folder app/Http/Middleware kemudian ketikkan script berikut:
Simpan file CorsMiddleware.php
Buka file app.php pada folder bootstrap kemudian tambahkan CorsMiddleware pada bagian Register Middleware:
Simpan file app.php
Testing Authentication JWT Lumen 7
Dari direktori project jalankan Lumen 7 menggunakan perintah berikut:
1 2 3 |
php -S localhost:8000 -t public |
Untuk menjalankan Lumen 7 pada port tertentu, misalnya port 9090 anda bisa menjalankannya dengan mengetikkan perintah berikut:
1 2 3 |
php -S localhost:9090 -t public |
Testing via Postman
Selanjutnya kita akan testing menggunakan Postman.
Register
Pertama-tama kita daftarkan user baru terlebih dahulu agar kita bisa melakukan login.
- Buka postman lalu pilih method POST kemudian ketikkkan URL http://localhost:8000/api/auth/register
- Kemudian pilih tab Body. Lalu pada radiobox pilih raw dan typenya ganti menjadi JSON.
- Selanjutnya inputkan data registrasinya seperti berikut:
1 2 3 4 5 6 7 |
{ "username": "cacan", "email": "cacan@email.com", "password": "rahasia" } |

Login
Setelah registrasi berhasil selanjutnya kita coba untuk login dengan user yang sudah kita registrasikan tersebut.
- Buka postman lalu pilih method POST kemudian ketikkkan URL http://localhost:8000/api/auth/login
- Kemudian pilih tab Body. Lalu pada radiobox pilih raw dan typenya ganti menjadi JSON.
- Selanjutnya inputkan data username dan password untuk login:
1 2 3 4 5 6 |
{ "username": "cacan", "password": "rahasia" } |

Jika login berhasil, maka kita akan mendapatkan access token.
Sampai disini kita sudah berhasil membuat authentication JSON Web Token menggunakan Lumen 7. Pada artikel selanjutnya kita akan coba Front End nya menggunakan VUE JS, Anggular dan juga React JS.
Semoga bermanfaat.
Source Code bisa anda download disini: