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
Komentar
Posting Komentar