JWT Library pada Autentikasi di Lumen Micro Framework #09.1



Di artikel ini kita aka membuat Lumen autentikasi, mencakup beberapa point penting yaitu:

  1. Instalasi & Konfigurasi JWT
  2. Membuat Function Login
  3. Membuat Authenticated Routing
  4. Indentifikasi User Login Authenticated Routing
Tapi sebelumnya kita harus menyelesaikan artikel Membuat Function Register di Micro Framework Lumen #09.


Instalasi dan Konfigurasi JWT 

Untuk Lumen Ketika kita login, maka kita akan mengembalikan Token login yang bisa digunakan sebagai penanda sesi Login. Untuk membuat Token ini, kita akan menggunakan plugin JWT untuk Lumen. Mari kita ikuti langkah-langkah dibawah ini:

1. Jalankan command prompt lalu rahkan pada direktori projek lumen temen-temen (harus connect internet), script dibawah akan meng insatall library JWT. 
composer require tymon/jwt-auth:dev-develop 

2. Kalau berhasil, di file composer.json, akan menjadi seperti ini. Lihat line 10


3. Buka file bootstrap/app.php, ubah menjadi seperti dibawah ini. Cari block ‘Register Service Providers’. Lalu kita uncomment dan tambahkan script dibawah. 


4. Jalankan command di di command prompt.
 php artisan jwt:secret 

Buka file .env Kalau berhasil bakal ada line seperti dibawah ini: 
JWT_SECRET=kdX7ERKWl4AtszpnC4N9KTXX0dmxanedrXo9tB64nJ7eHJms0imL OuajfsS5AzGN


Membuat fungsi Login 

Untuk membuat fungsi login, mari ikuti langkah-langkah dibawah ini. 

1. Buka file bootstrap/app.php, ubah menjadi seperti dibawah ini. Cari block ‘Register Middleware. Dalam kasus ini ada di line 79-81.


2. Buka file app/Models/user.php, ubah menjadi seperti dibawah ini.Lihat line 12 - 14 dan line 36 - 54.

3. Buat folder dan file baru dengan direktori config/auth.php, dengan code seperti dibawah ini

4. Buka file routes/web.php, cari group ‘auth’, ubah menjadi seperti dibawah ini.

5. Buka file app/Http/Controllers/AuthController.php, tambahkan code ini diatas deklarasi Class. Lihat line 7.


6. Buka file app/Http/Controllers/AuthController.php, tambahkan function login code nya seperti dibawah ini.
 
7. Test menggunakan Postman seperti gambar berikut dan masukkan email dan password yang valid.



8. Kalau email dan password nya salah, seperti ini: 




Membuat Authenticated Routing 

Sekarang kita akan membuat routing di bawah ini tidak bisa diakses oleh user yang belum login.  Untuk implementasi nya mari ikuti langkah-langkah dibawah ini. 

1. Buka file routes/web.php, ubah products routing menjadi seperti dibawah ini.


2. Sekarang kalau kita akses melalui Postman, maka response nya seperti ini. 



3. Mari kita tambahkan header Authorization dengan value [Bearer LOGIN_TOKEN]. Authorization ini akan digunakan sebagai sesi Login.




Indentifikasi User Login Authenticated Routing 

Dari Token login yang dikirim, kita bisa melakukan identifikasi user. 
Sebagai contoh, kita hanya akan mengembalikan list posts berdasarkan posts.user_id = UserLogin.id. 
Mari ikuti langkah-langkah dibawah ini. 

1. Buka file app/Http/Controllers/PostsController.php, dan ubah menjadi seperti dibawah ini. Lihat line 7 dan line 18. 

2. Testing menggunakan Postman.



0 komentar:

Posting Komentar