Ada satu fitur yang cukup menarik di PHPMaker 2021, dan selama ini luput dari perhatian kita. Fitur itu adalah Allow login by session variables yang dapat kita lihat dari menu Tools -> Advanced Settings.
Jika pilihan ini kita aktifkan sebelum men-generate ulang semua file script, maka itu artinya kita sebagai Web Developer mengijinkan Pengguna Akhir untuk mengakses halaman di Aplikasi Web tanpa harus login secara manual seperti yang biasa dilakukan dari halaman Login.
Seperti yang dijelaskan dari menu Help PHPMaker 2021, fitur ini mengijinkan kita untuk melewatkan username dan password ke halaman Login lewat penggunaan variabel session (variabel yang nilainya tersimpan di session).
Secara standar, halaman Login hanya menerima HTTP POST. Jika pilihan Allow login by session variables diaktifkan, maka halaman Login dapat menerima variabel session juga. Akibatnya, Pengguna Akhir dapat login secara otomatis hanya dengan cara mengeset beberapa variabel session username dan password.
Supaya tidak bingung, mari kita praktekkan pada project demo2021 yang dapat Anda download dan coba sendiri di localhost.
Pertama sekali, kita aktifkan pilihan Allow login by session variables dari menu Tools -> Advanced Settings.
Langkah kedua, cukup copy/paste dua baris kode PHP ini ke dalam server event Page_Rendering yang terdapat di bawah lokasi: Server Events -> Global -> All Pages:
$_SESSION[PROJECT_NAME . "_Username"] = "nancy"; $_SESSION[PROJECT_NAME . "_Password"] = "1234"; // asumsi: password belum pernah diganti
Terakhir, simpan project-nya, lalu generate ulang semua file script seperti biasa menggunakan PHPMaker 2021.
Karena kode pada server event Page_Rendering akan dipanggil oleh semua halaman, maka itu artinya ketika kita mencoba mengakses halaman tertentu di Aplikasi Web yang sudah di-generate oleh PHPMaker 2021, maka sistem sudah otomatis melakukan login.
Jadi, dalam hal ini kita tidak perlu melakukan login manual seperti yang selama ini kita lakukan dengan memasukkan data username dan password pada halaman Login.
Fitur Allow login by session variables ini sangat cocok jika kita ingin langsung memberikan akses suatu Aplikasi Web kepada Pengguna Akhir tanpa mereka harus melakukan login secara manual dengan cara memasukkan username dan password dari halaman Login.
Betapa mengasyikkan bukan menggunakan PHPMaker 2021? Hanya dengan 2 baris kode itu saja, kita sudah dapat membuat Aplikasi Web yang dapat login secara otomatis hanya dengan mengeset variabel session yang terkait dengan username dan password.
Selebihnya sudah ditangani oleh PHPMaker 2021. Kita tidak perlu menulis kode berpuluh-puluh, beratus-ratus, atau bahkan beribu-ribu baris hanya untuk mengimplementasikan fitur tersebut.
Fendi mengatakan
Salam Kenal pak,
Saya mw bertanya pak, dalam php maker jika kita ingin membelokkan auth ke radius server apa memungkinkan ? Jadi username dan password yg diinput akan check by radius,
saya cba php native aman2 aja, kalo di php maker bagaimana solusinya pak, mungkin sekiranya bapak paham. Terimakasih
Masino Sinaga mengatakan
Saya tidak paham yang dimaksud dengan radius server itu seperti apa ya?
Kode PHP native-nya seperti apa kalau boleh tahu?
Fendi mengatakan
radius itu adalah method authentikasi pak, konsepnya seperti single sign on.
sample nativenya seperti ini pak
SetNasIpAddress(‘122.80.80.100’); // Needed for some devices (not always auto-detected)
if ($radius->AccessRequest(‘admin’, ‘passadmin’))
{
echo “Authentication accepted.”;
}
else
{
echo “Authentication rejected.”;
}
?>
kita hanya send user passnya ke server radius, krn server radius yang bersinggungan langsug dengan database ataupun layer authnya, kita hanya menerima replay gagal atau berhasilnya saja,
jika auth diterima maka kita bentuk session dan aplikasi berjalan. beberapa hari lalu sebenernya saya sempet pengen beli lisensi php maker, tapi khawatir mubazir saya blm menguasai penuh untuk pemecahan kasus2 yag tidak biasa, contohnya seperti yg saya tanyakan ini pak, mungkin bapak bisa bantu ?
Masino Sinaga mengatakan
Tentu saja PHPMaker dapat menangani otentikasi seperti itu. Anda bisa menggunakan server event User_CustomValidate.
Jadi, di server event ini kita bisa menggunakan otentikasi dari pihak ketiga lainnya, seperti LDAP. Lihat dokumentasinya di sini.
Ini saya kutip dari dokumentasinya:
“Anda dapat menggunakan event ini untuk memvalidasi pengguna menggunakan cara Anda sendiri. Argument yang dilewatkan adalah username dan password milik pengguna. Kembalikan true jika username dan password melewati validasi yang Anda inginkan.”
Fendi mengatakan
Radius server merupakan protokol jaringan yang menjalankan service management Authentication, Authorization, dan Accounting (AAA), biasa digunakan pada mikrotik atau hotspot system dan biasa diintegrasikan dengan aplikasi lainnya pak.
rencananya itu method loginnya dari php maker yang tadinya melalui database, nah ini diarhkan ke radius dlu sebagai authnya jika benar maka dibentuk session.
SetNasIpAddress(‘xx.xx.xx.xx’); // Needed for some devices (not always auto-detected)
if ($radius->AccessRequest(‘admin’, ‘password’))
{
echo “Authentication accepted.”;
}
else
{
echo “Authentication rejected.”;
}
?>
Masino Sinaga mengatakan
Oke mas, PHPMaker bisa menangani otentikasi seperti itu. Silahkan dipelajari server event User_CustomValidate yang sudah saya sebutkan di atas tadi.
Fendi mengatakan
Selainnitu memakai class juga, tapi ini dipakai diver 7.2 ke bawah,
khawatir tidak bisa digunakan oleh php maker terbarunya
require_once(‘radius.class.php’);
Masino Sinaga mengatakan
PHPMaker 2022 memang mempersyaratkan minimal PHP versi 7.3.
Tapi silahkan saja dicoba, siapa tahu class-nya masih support ke versi 7.3 tersebut.