Oleh: Rony Syahputra Nasution | Januari 26, 2010

Proses Login dengan Sistem Lock

Ceritanya lagi buat proses login,
pada aplikasi web base.

Bagi anda yang sering menggunakan yahoo, FB, dan sejenisnya,
pasti sering menjumpai fitur login ini,
tapi yang ini dengan sistem Lock.

Sistem Lock disini,
adalah 1 account hanya dapat digunakan pada 1 kesempatan proses,
jadi dimana sebuah account tidak bisa digunakan 2 atau lebih,
pada waktu bersamaan.

Berbeda dengan yang diimplementasikan pada FB dan sejenisnya
dimana kita bisa login dengan 1 account,
pada beberapa web browser bahkan komputer lain.

Pada awalnya,
saya membuat proses login dengan sistem tersebut,
dengan memberi tambahan 1 field di database,
misalnya field status : 0 (non aktif) dan 1 (aktif).

Berhasil ? Selesai ?

Berhasil, tapi ternyata ada masalah baru.

Permasalahan muncul ketika,
user/pengguna tidak memilih proses (tombol) logout,
ketika mengakhiri penggunaan aplikasi,
misalnya memilih tombol close pada browser,
atau komputer yang digunakan bermasalah (dibaca : hang).

Karena field status di database,
tetap bernilai 1,
yang artinya account yang dimaksud aktif atau terkunci (lock).

Hal tersebut, bisa dipecahkan dengan bantuan hak akses admin,
yaitu dengan memberi nilai 0 pada field status,
yang ada didatabase oleh admin.

Selesai ?

Ternyata belum, bagaimana jika admin sedang absen ?

Kan ada admin cadangan !!!

Emang main bola, ada cadangan hehe.
dan jika ternyata memang benar2 tidak ada yang backup admin,
mesti bagaimana ?

Rupanya memang dibutuhkan,
pengembangan aplikasi,
sehingga walau admin lagi tak ada ditempat,
tidak menimbulkan masalah.

Alhamdulillah,
ketemu juga solusinya.

Langkah awal,
adalah dengan menambahkan 2 field (tergantung) di database,
field tanggal_akses dan jam_akses,
disamping field status (dan field2 lainnya),
yang sebelumnya telah ada.

Langkah selanjutnya,
adalah dengan memodifikasi code,
yaitu pada script proses verifikasi login,
dan pada header dari setiap script yang digunakan.

Pada script proses verifikasi login,
dilakukan modifikasi code,
terhadap pengujian kondisi.

Ciptakan $akses_cek,
adalah variabel yang bernilai,
pada waktu yang diciptakan ketika script verifikasi login,
dijalankan.

Ciptakan $akses_akhir,
adalah nilai dari waktu terakhir,
yang disimpan dalam field tanggal_akses & jam_akses di database,
ketika salah satu script dijalankan,
yang diciptakan dari modifikasi script,
yang diletakkan pada header dari setiap script,
nilainya di konversi dalam detik, dengan fungsi strtotime.

Alurnya,
Jika field status (database) bernilai 1 (aktif),
dan $akses_cek lebih besar dari $akses_akhir ditambah waktu tunggu,
maka program akan memblok jika ada account yang telah digunakan,
dan menunggu hingga waktu IDLE (waktu diam) = waktu tunggu.

Waktu tunggu,
dapat ditentukan sesuai dengan kebutuhan,
misal akan non aktif setelah 15 menit,
tidak digunakan.

Tetapi jika field status (database) bernilai 1 (aktif),
dan $akses_cek lebih kecil dari $akses_akhir ditambah waktu tunggu,
maka program mengijinkan account tersebut untuk masuk/sign in,
karena diasumsikan account yang sebelumnya digunakan,
telah melewati IDLE (waktu diam) yang ditentukan,
melalui variabel waktu tunggu.

Sedangkan jika field status,
bisa langsung masuk/sign in,
karena account belum ada yang menggunakan,
kan masih 0 (non aktif) hehe.

Untuk modifikasi code,
yang diletakan pada bagian header,
dari masing script.

Langkah awal,
adalah menciptakan waktu akses file script,
yang sedang dijalankan dengan fungsi time().

Kemudian nilai tersebut dibandingkan dengan,
jam_akses (database) ditambah waktu tunggu.

Jika waktu akses file script lebih kecil,
maka program mengupdate tanggal_akses dan jam_akses,
yang berada pada database dengan waktu saat ini,
serta melanjutkan perintah selanjutnya.

Jika sebaliknya,
maka program menghentikan proses,
dan otomatis menuju halaman login,
untuk kembali mengakses file/script tersebut.

Setelah ini semua,
apa tujuannya ?

Salah satuya adalah menjaga trafic,
aplikasi – database,dari penggunaan multi user,
bisa juga buat keren2an,
biar mirip aplikasi2 berlicensi yang mahal2
hahahaha…

Semoga Bermanfaat.
Salam dari Cirebon
Rony Syahputra N


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kategori

%d blogger menyukai ini: