Destroying a specific session in Code Igniter
Create a new column in the ci_session table.
ALTER TABLE `yourdatabase`.`ci_sessions`
ADD COLUMN `userid` VARCHAR(45) NULL AFTER `user_data` ;
Then in your login function get the id from your login process and before adding the userdata information to the session do:
/* Delete any existing sessions with the current userid session.
Note - a new session has already been generated but doesn't have a value
in the userid column, so won't get deleted. */
$this->db->delete('ci_sessions',array('userid' => $identity));
// Get the current session and update it with the userid value.
$session_id = $this->session->userdata('session_id');
$this->db->where('session_id', $session_id);
$this->db->update('ci_sessions', array('userid' => $identity));
Where $identity
is your userid. That clears any previous sessions and means only one exists at a time.
There is the function to destroy some items/session you want
$this->session->unset_userdata('session_name')
And to allow one user to log in one computer at a time or one browser at a time you can read more here
Allow one session only at a time