Sabtu, 12 Desember 2020

PHP Lumen Autentication

Mohon maaf bila gambar rusak anda bisa unduh file pdf disini AUTHENTICATION.pdf

Pada Bab ini kita akan menambahkan fungsi autentikasi. Tujuan praktek ini adalah untuk:
1. Mampu implementasi autentikasi menggunakan Lumen
2. Mampu membuat fungsi login
3. Mampu membuat fungsi register

A.    Membuat Tabel User

Untuk membuat table ​users ​ , mari kita ikuti langkah-langkah berikut ini:

1.      Membuat database migration dengan menjalankan command dibawah ini pada terminal: php artisan make:migration create_users_table

2.      Buka file database/migrations/...create_users_table.php, an ubah menjadi seperti dibawah ini

3.      Jalankan command dibawah ini pada terminal:
php artisan migrate 

4.      Kemudian insert satu row ke table users

5.      Selesai

 

 

 

 

 

B.     Membuat Model User

Untuk membuat model user, ikuti langkah-langkah dibawah ini:

1.      file baru dengan nama app/Models/User.php, codenya seperti dibawah ini.

           

Endpoint
Saat ini kita sudah mengimplementasikan endpoint yang akan kita gunakan, yakni seperti ini:

C.    Membuat Fungsi Register

Implementasi fungsi ini adalah fungsi index di PostsController.php:

1.      Buka file routes/web.php, tambahkan code dibawah ini

           

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

           

3.      Mari kita test dengan menggunakan Postman. Negative case.

           

4.      Mari kita test dengan menggunakan Postman. Positive case.

           

D.    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 di di command prompt (harus connect internet).
composer require tymon/jwt-auth:dev-develop

           

2.      Jika berhasil, di file composer.json, akan menjadi seperti ini.

3.      Buka file bootstrap/app.php, ubah menjadi seperti dibawah ini.
Cari block ‘Register Service Providers’.

             

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

5.      Buka file .env Kalau berhasil akan ada line seperti dibawah ini: 

            

 

A.    Membuat fungsi Login 

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

1.      bootstrap/app.php, ubah menjadi seperti dibawah ini. Cari block ‘Register Middleware

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

3.      Buat file 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.

    

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

7.      Test menggunakan Postman

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

B.     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 posts 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

                

 

 

 

C.    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

2.      Testing menggunakan Postman.


Tidak ada komentar:

Posting Komentar

Cloud Computing

  Tujuan Mempelajari Cloud Computing Setelah membaca sedikit terkait pengenalan dasar Cloud Computing. Saya berharap dengan mengikuti mata k...