Session Timeout dalam CodeIgniter

Contoh Kasus:

Klien saya mempunyai request sebagai berikut:

  • Agar setelah 15 menit tidak ada aktifitas pada aplikasi CodeIgniter maka session dari user tersebut timeout sehingga apabila user melakukan aktifitas setelah idle selama 15 menit maka session user tersebut didestroy dan halaman akan diredirect ke halaman login.
  • Setelah halaman diredirect ke halaman login maka jika user mengklik tombol back pada browser maka halaman harus tetap di halaman login tidak boleh kembali lagi ke halaman aplikasi CodeIgniter.

Pertanyaan:

Bagaimana membuatnya … ?

Jawaban:

ikuti langkah dibawah ini:

Perubahan pada file Config

Bukalah file application/config.php lalu rubahlah beberapa kode  seperti dibawah ini:

$config[‘sess_expiration’] = 900; 

$config[‘sess_expire_on_close’] = FALSE;

Keterangan:

  • $config[‘sess_expiration’] = 900; Kode ini berarti kita membuat session expired selama 15 menit, jadi jika user tidak melakukan akitfitas selama 15 menit maka session akan expired.
  • $config[‘sess_expire_on_close’], kode ini harus diberi nilai FALSE jika jika kita mau menggunakan $config[‘sess_expiration’] karena kalau diberi nilai TRUE maka nilai $config[‘sess_expiration’] akan diberi nilai 0 oleh sistem.

Pertanyaan:

Apa buktinya kalau elemen $config[‘sess_expire_on_close’] diberi nilai TRUE maka sistem akan memberikan nilai 0 kepada elemen  $config[‘sess_expiration’] … ?

Jawaban:

Kamu bisa buka library Session.php dan cari kode dibawah ini:

$expire = ($this->sess_expire_on_close === TRUE) ? 0 : $this->sess_expiration + time();

Pemeriksaan Session pada Controller

Buatlah pada fungsi __contruct dari Controller CodeIgnitermu seperti kode dibawah ini:

function __construct(){ 

parent:__construct;

if(!$this->session->userdata(‘nama_session’){

redirect(‘halaman_login’);

}

}

Keterangan:

  • if(!$this->session->userdata(‘nama_session’), kode digunakan untuk memeriksa apakah session ‘nama_session’ masih ada, jadi jika kita tidak melakukan aktifitas setelah 15 menit maka session ‘nama_session’ ini akan expired walaupun cookienya masih ada dengan kata lain jika kita tidak melakukan aktifitas setelah 15 menit maka session akan dihapus tapi cookienya akan tetap ada.

 

Jika tutorial ini bermanfaat silahkan katakan ‘Terima Kasih Fahmi Basya Kartapura‘.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *