PHP Lumen Authorization

PHP Lumen Authorization


Halo teman - teman pada tutorial kali ini akan melanjutkan mengenai PHP Lumen dan tutorial kali ini akan membahas PHP Lumen Authorization silahkan perhatikan dan ikuti tutorial di bawah ini.

Pertama - tama nyalakan fitur apache dan mysql pada xampp

Menambahkan Column Role Pada Table users

Jika sebelumnya belum membuat table users, ana harus membuat dulu table users. Lihat tutorial PHP Lumen Authentication. bisa di lihat di sini

1. Membuat database migration dengan menjalankan command di terminal
php artisan make:migration add_role_to_users_table --table=users
Apabila tidak error maka akan muncul perintah di atas

2. Buka file migrations _add_role_to_users_table.php di folder database dan ubahlah kodingan nya menjadi seperi ini
Apabila sudah simpan file nya

3. Lalu ketikan perintah di terminal php artisan migrate

4. Secara default column role yang sudah terdaftar di database adalah role=reader bisa dilihat di phpmyadmin
apabila sudah menambahkan data ke tabel users maka akan muncul role dengan default reader

5. Kita menggunakan role 3 users role yang berbeda, silahkan bikin user dengan role
- admin
- editor
- reader
Namun karena reader sudah menjadi default maka tambahkan data dengan role admin dan editor 
User dengan role admin

User dengan role editor
Namun karena role default dari users nya adalah reader maka edit role nya menjadi editor atau admin di phpmyadmin

Selesai


Kebutuhan User Role 

Setiap role dari user, memiliki kemampuan yang berbeda-beda, yakni: 

1. Admin
- Bisa read all posts 
- Bisa read detail post 
- Bisa create posts
- Bisa update post 
- Bisa delete post 

2. Editor
- Bisa read all posts (yang dibuat oleh user yang lagi login) 
- Bisa read detail post (yang dibuat oleh user yang lagi login)
- Bisa create posts 
- Bisa update post (yang dibuat oleh user yang lagi login) 
- Bisa delete post (yang dibuat oleh user yang lagi login)

3. Reader 
- Bisa read all posts
- Bisa read detail post 
- Bisa memberikan comment pada post tertentu

Selesai

Membuat Logika Policy Pada Read All Post

Logika police ini berguna untuk menentukan role apa bisa mengakses data apa. Untuk implementasi kebutuhan user role diatas, kita akan menggunakan fitur policies dari Lumen. Untuk membuat logika policy pada read all, mari ikuti langkah-langkah dibawah ini :

1. Buka file AuthServiceProvider.php di folder App/Provider dan masukan kodingan nya seperti ini bisa dilihat pada baris ke 4-5 dan 35-37.
Kalau sudah simpan file nya

2. Buka file PostsController.php di folder App/Http tambahkan gate class dan ubahlah function index. Bisa di lihat di baris ke 8 dan baris ke 14-27.

3. Jalankan perintah php -S localhost:8000 -t public

4. Buka aplikasi postman dan login terlebih dahulu dengan memanggil http://localhost:8000/auth/login dan masukan email dan password yang terdaftar di database dan nanti akan muncul token.


5. Lalu masukan token nya pada header authorization dengan type bearer 

6. Lalu panggil http://localhost:8000/post dengan role nya user maka akan muncul error seperti ini


7. Lakukan hal yang sama yaitu login dengan role admin lalu panggil lagi link nya maka akan muncul seperti ini




8. Lakukan lagi hal yang sama yaitu login dengan role editor lalu panggil lagi link nya maka akan muncul seperti ini

Selesai

Membuat Logika Policy Pada Update Post

User yang bisa melakukan update adalah ‘editor’ dan ‘admin’. Untuk ‘editor’ hanya bisa meng-update post yang dia create, untuk ‘admin’ bisa meng-update semua post. Untuk membuat logika policy pada create, mari ikuti langkah-langkah dibawah ini:

1. Buka AuthServiceProvider.php di folder app/Provider dan tambahkan code seperti ini


2. Buka file PostController di folder app/Http dan ubah function update menjadi seperti ini

3. Buka postman dan login menggunakan role = user maka akan muncul tampilan seperti ini

4. Jika login menggunakan role = admin atau editor maka akan muncul tampilan seperti ini



OK mungkin untuk tutorial nya sampai disini terlebih dahulu silahkan di coba konfigurasinya dan terima kasih telah mengikuti tutorial kali ini

Komentar

Postingan populer dari blog ini

Cloud Computing Delivery Model

Tutorial Menggunakan Image CRUD di Code Igniter + Grocery CRUD

Cloud Mechanism