PHP Lumen Authentication

 

Deskripsi

Tutorial ini melanjutkan project dari tutorial sebelum nya dengan nama ‘PHP Lumen Validationand Error Handling’. Pada tutorial ini kita akan menambahkan fungsi autentikasi. Tujuan praktekini adalah untuk:
  1. Mampu implementasi autentikasi menggunakan Lumen
  2. Mampu membuat fungsi login
  3. Mampu membuat fungsi register
Syaranya harus menyelesaikan dulu modul dengan judul "PHP Lumen Validation and Error Handling".

Membuat Table ​users

Jika sebelumnya sudah membuat table users, step ini bisa dilewati.
Untuk membuat table ​users​, mari kita ikuti langkah-langkah berikut ini:
Membuat database migration dengan menjalankan command dibawah ini pada terminal:php artisan make:migration create_users_table
Buka file database/migrations/...create_users_table.php, dan ubah menjadi sepertidibawah ini:

Jalankan command dibawah ini pada terminal: php artisan migrate
Kemudian insert satu row ke table users.
Selesai

Membuat Model User

Untuk membuat model user, ikuti langkah-langkah dibawah ini:
Buat file baru dengan nama app/Models/User.php, codenya seperti dibawah ini

Membuat Fungsi Register

Implementasi fungsi ini adalah fungsi index di PostsController.php:
Buka file routes/web.php, tambahkan code dibawah ini.


Buat file baru app/Http/Controllers/AuthController.php, code nya seperti dibawah ini.


Mari kita test dengan menggunakan Postman. Negative case.


Mari kita test dengan menggunakan Postman. Positive case.



Instalasi dan Konfigurasi JWT untuk Lumen

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

Jalankan command di di command prompt (harus connect internet).
composer require tymon/jwt-auth:dev-develop
Kalau berhasil, di file composer.json, akan menjadi seperti ini.

Buka file bootstrap/app.php, ubah menjadi seperti dibawah ini. Cari block ‘RegisterService Providers’. Dalam kasus ini ada di line 71

Jalankan command di di command prompt. php artisan jwt:secret
Buka file .env Kalau berhasil bakal ada line seperti dibawah ini:JWT_SECRET=kdX7ERKWl4AtszpnC4N9KTXX0dmxanedrXo9tB64nJ7eHJms0imLOuajfsS5AzGN 

Membuat fungsi Login

Untuk membuat fungsi login, mari ikuti langkah-langkah dibawah ini.
Buka file bootstrap/app.php, ubah menjadi seperti dibawah ini. Cari block ‘RegisterMiddleware. Dalam kasus ini ada di line 51


Buka file app/Models/user.php, ubah menjadi seperti dibawah ini.

Buat file config/auth.php, dengan code seperti dibawah ini

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

Buka file app/Http/Controllers/AuthController.php, tambahkan code ini diatas deklarasiClass.


Buka file app/Http/Controllers/AuthController.php, tambahkan function login code nyaseperti dibawah ini.

Test menggunakan Postman

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 belumlogin.
Untuk implementasi nya mari ikuti langkah-langkah dibawah ini.
Buka file routes/web.php, ubah posts routing menjadi seperti dibawah ini.


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


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 hanyaakan mengembalikan list posts berdasarkan posts.user_id = UserLogin.id. Mari ikutilangkah-langkah dibawah ini.

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

Testing menggunakan Postman.


Selesai.

Komentar

Postingan Populer