Autentikasi Login PHP dengan Telegram bot



Autentikasi Login PHP dengan Telegram bot

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:
  1. User wajib menggunakan Telegram
  2. Login dengan username dan password
  3. 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.
  4. User mendapatkan kode autentikasi dan memasukannya pada laman autentikasi.
  5. Done..


Hal-hal yang perlu disiapkan untuk membuat autentikasi login php dengan telegram bot

  1. 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.
  2. PHP script untuk proses login dan validasi.
  3. SQL database.
  4. Sistem operasi Linux (karena dalam tulisan ini Saya menggunakan Linux).
Baik, berikut ini langkah-langkahnya.
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
1) config.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:
  1. User mengirimkan perintah pada bot Telegram sesuai dengan format yang telah ditentukan.
  2. Perintah tersebut akan mengeksekusi 5 nomor secara acak.
  3. 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>
  4. Secara langsung auth_code user tersebut akan terganti dan user mendapatkan balasan pesan berisi 5 nomor tersebut.
  5. 5 digit nomor ini digunakan sebagai autentikasi login atau istilah kerennya "Two step verification".
Jika masih bingung, silahkan lihat gambar-gambar berikut ini.

Laman login.
Autentikasi Login PHP dengan Telegram bot

Setelah berhasil login, user dibawa ke laman autentikasi.

Autentikasi Login PHP dengan Telegram bot

User meminta kode autentikasi kepada bot Telegram, (contoh perintah: !code).
Secara langsung bot mengeksekusi perintah UPDATE auth_code pada tabel users dan membalas pesan.

Autentikasi Login PHP dengan Telegram bot

Kode ini digunakan sebagai autentikasi (Two step verification).

Autentikasi Login PHP dengan Telegram bot

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.

4 comments:

  1. autentikasi.php blum ada penjelasan tentang listing code programnya.

    verifikasi.php blum ada penjelasan tentang listing code programnya.

    Mohon di publish boss biar lengkap tulisanya.

    ReplyDelete
    Replies
    1. Nanti saya update lagi om artikelnya, sekarang belum sempat nulis lagi ada project dulu :D

      Delete
  2. mohon penjelasan untuk file
    autentikasi.php
    verifikasi.php

    ReplyDelete
    Replies
    1. 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

      Delete