Autentikasi login PHP dengan Telegram bot?
Ide unik ini muncul ketika Saya mengerjakan project web yang berhubungan dengan penyimpanan data dan dapat diakses oleh public (internet). Karena bersifat sedikit "R", maka Saya memikirkan perlunya autentikasi login untuk meningkatkan security pada aplikasi.Sebetulnya skema nya sederhana dan sama saja dengan autentikasi login pada umumnya, yang membedakannya yaitu Saya menggunakan bot telegram untuk melakukan generate kode autentikasi. Lebih jelasnya seperti di bawah ini:
- User wajib menggunakan Telegram
- Login dengan username dan password
- Masuk ke laman autentikasi, untuk mendapatkan kode autentikasi user harus meminta nya kepada bot telegram. Bot akan membalas dan memberikan kode secara acak dengan ijin dari team security. Kode ini melekat dengan Telegram ID user.
- User mendapatkan kode autentikasi dan memasukannya pada laman autentikasi.
- Done..
Hal-hal yang perlu disiapkan untuk membuat autentikasi login php dengan telegram bot
- Akun dan bot Telegram, bagaimana cara membuat bot Telegram? Silahkan baca postingan sebelumnya: membuat bot Telegram untuk personal notifikasi, membuat bot Telegram webhook, kumpulan bot Telegram beserta source code.
- PHP script untuk proses login dan validasi.
- SQL database.
- Sistem operasi Linux (karena dalam tulisan ini Saya menggunakan Linux).
Saya skip nomor 1, karena Saya yakin Anda telah memiliki akun Telegram beserta bot-nya (silahkan dibaca cara membuat bot telegram).
Untuk form login, banyak di internet. Salah satunya bisa menggunakan Signin Template for Bootstrap.
Selanjutnya membuat tabel database dengan nama users atau whatever sesuaikan saja.
Tabel: users.sql
Membuat PHP script :
- config.php
- login.php
- login-validasi.php
- autentikasi.php
- verifikasi.php
2) login.php
3) login-validasi.php
Untuk file
autentikasi.php
dan verifikasi.php
sama seperti file login.php
dan login-validasi.php
, tinggal dirubah dan disesuaikan saja variabel password
diganti menjadi auth_code
.
Selanjutnya adalah membuat
bash script
untuk generate kode secara acak. Enaknya menggunakan Linux, banyak jalan menuju Roma. Dalam hal ini banyak cara yang bisa digunakan untuk meng-generate kode secara acak, salah satunya seperti di bawah ini.< /dev/urandom tr -dc 0-9 | head -c5-c5 = mengambil 5 digit nomor
Bash script ini akan di eksekusi oleh bot Telegram untuk melakukan UPDATE auth_code pada tabel users.
Masih ingkatkan? Telegram ini mempunyai identifier berupa Telegram ID. Nah, karena itulah mengapa Saya menggunakan variabel Telegram ID pada tabel users. Bingung?
Logikanya sebagai berikut:
- User mengirimkan perintah pada bot Telegram sesuai dengan format yang telah ditentukan.
- Perintah tersebut akan mengeksekusi 5 nomor secara acak.
- Setelah mendapatkan nomor, bot akan melakukan UPDATE tabel users seperti berikut ini:
UPDATE users SET auth_code=<5 nomor acak> WHERE telegram_id=<Telegram ID user>
- Secara langsung auth_code user tersebut akan terganti dan user mendapatkan balasan pesan berisi 5 nomor tersebut.
- 5 digit nomor ini digunakan sebagai autentikasi login atau istilah kerennya "Two step verification".
Laman login.
Setelah berhasil login, user dibawa ke laman autentikasi.
User meminta kode autentikasi kepada bot Telegram, (contoh perintah:
!code
).Secara langsung bot mengeksekusi perintah
UPDATE
auth_code
pada tabel users dan membalas pesan. Kode ini digunakan sebagai autentikasi (Two step verification).
Done, user berhasil login ke aplikasi 😎.
Sederhana kan? yang penting itu... "idenya" hehe..
Catatan: biar lebih secure, kita bisa memproteksi bot Telegram untuk membalas pesan hanya pada user yang kita kehendaki (berdasarkan Telegram ID).
Demikianlah postingan mengenai autentikasi login PHP dengan Telegram bot.
autentikasi.php blum ada penjelasan tentang listing code programnya.
ReplyDeleteverifikasi.php blum ada penjelasan tentang listing code programnya.
Mohon di publish boss biar lengkap tulisanya.
Nanti saya update lagi om artikelnya, sekarang belum sempat nulis lagi ada project dulu :D
Deletemohon penjelasan untuk file
ReplyDeleteautentikasi.php
verifikasi.php
Sebenarnya sama saja dengan file login-validasi, hanya parameter (variable) nya saja beda nama. Nanti saya update lagi artikelnya, sekarang belum sempat nulis lagi ada project dulu :D
DeleteAyo dong min diupdate lagi..
ReplyDeleteSiap kang, nanti saya update kembali. Lagi disiapin artikel-artikelnya setelah sekian lama gak ngeblog :D
Deletecara bikin bash scriptnya gimana gan?
ReplyDeleteCb kalo user tidak minta code nya , si bot langsung lah yg memberi nya itu gmna ya
ReplyDeleterequest artikle form registrasi menggunakan request otp melalui telegram bot, sepertinya sama dengan artikel ini, cuma yang ini otp nya pas login, bukan pas register, terima kasih
ReplyDeleteBisa cek artikel di web dicoffeean.com
Delete