Cara Mencegah Multiple Login di Codeigniter 3 Menggunakan Ion Auth

Belum lama ini saya mendapat permintaan dari client saya untuk membuat fitur Single Login pada aplikasi E-TKDN. Single Login disini maksudnya satu user hanya bisa membuat satu sesi (session)  di dalam waktu bersamaan, jadi ketika ada dua user dengan akun yang sama akan masuk ke sistem maka user yang pertama login akan dikeluarkan (logout) dari sistem diagantikan dengan user yang kedua . Disini saya akan mencoba untuk menjelaskan bagaimana cara mencegah membuat single login atau mencegah multiple login di Codeigniter dengan menggunakan library Ion Auth. Bagi Anda yang belum menggunakan librari Ion Auth, Anda bisa mendownloadnya disini.

Berikut langkah-langkah cara menambahkan fitur Single Login:

1. Didalam table user tambahkan field current_sessionid

2. Tambahkan Scrip PHP di bawah ini ke file Ion_auth_model.php di baris 1093 di folder models:

$this->db->delete('tbl_sessions', array('id' => $this->ion_auth->user()->row()->current_sessionid)); 
$data = array('current_sessionid' => session_id());
$this->db->where('id', $this->ion_auth->user()->row()->id);
$this->db->update('tbl_users', $data);

Ketika Anda sudah menambahkan script diatas, file Ion_auth_mode.php akan terlihat seperti screenshoot dibawah ini :

Selanjutnya, silahkan Anda coba login dengan menggunakan akun yang sama di browser yang berbeda, saya sarankan user pertama login di mozilla mode penyaraman dan user lain buka di chrome mode ignito. Apabila salah satu user otomatis logout maka fitur single login sudah berjalan di aplikasi Anda.

Sekian untuk artikel kali ini, terimakasih telah menyempatkan membaca artikel disini dan semoga bermanfaat.

sumber : https://github.com/benedmunds/CodeIgniter-Ion-Auth/issues/947