![]() |
Ilustrasi impersonating user |
Salah satu fitur menarik yang ada pada Symfony security adalah fitur untuk melakukan impersonating user, fitur ini adalah fitur yang dibuat supaya user dengan role tertentu (biasanya admin/pragrammer atau apapun yang telah ditentukan) supaya dapat mengakses sistem seolah-olah menjadi orang lain tanpa harus logout dan login dengan akun orang lain tersebut terlebih dahulu.
Fitur ini sangat berguna terutama untuk admin system atau programmer perlu melihat-lihat suatu kejadian dari perspektif login user lain, hal ini diperlukan misal saat admin atau programmer mendapatkan laporan mengenai sesuatu masalah yang hanya terjadi pada user tertentu sehingga dapat melakukan tracing dan debuging terhadap masalah dengan lebih cepat.
Catatan/Post ini membahas tentang Symfony security, bila belum pernah mencoba atau membaca tentang ini ada baiknya membaca catatan saya sebelumnya disini.
Firewals
Mari fokus kebagian ini saja di firewall.
switch_user: { role: ROLE_USER, parameter: _want_to_be_this_user }
Users
Pada contoh kasus kali ini saya memiliki 2 users yang berbeda yaitu user joni dan doni. nanti user joni akan login terlebih dahulu lalu melakukan impersonating menjadi doni lalu diakhiri dengan _exit untuk kembali menjadi joni.
Login Sebagai Joni
Pertama yang harus kita lakukan adalah kita harus melakukan login terlebih dahulu sebagai user joni.
![]() |
Login terlebih dahulu sebagai joni. |
Url Impersonate start
Pada tahap kedua ini user joni sudah login dan dia ingin melakukan impersonate si doni. maka pada kasus saya ini saya cukup melakukan penambahan param _want_to_be_this_user=username di url.
![]() |
User yang login sesungguhnya adalah joni. |
![]() |
joni melakukan impersonating doni. |
Url Impersonate stop
Untuk mengakhiri sesi berpura-pura menjadi doni maka cukup menggunakan _exit diparam yang tadi kita gunakan untuk menyimpan nama doni di url.
Sumber: https://symfony.com/doc/current/security/impersonating_user.html
Comments
Post a Comment