Hi,
First off thanks for an awesome library.
For some reason I can’t get the remember me function to work.
For testing purposes I’ve set the login expiration to 1 minute.
The remember me life is 12 weeks.
When I check the remember me box during log in, I can see the userhash and random_string cookies set and recorded to db.
I then don’t do anything for 2 minutes while I’m logged in. When I try to go to a page that requires log in I get logged out, and the remember me cookie gets deleted.
It seems like the remember me feature should keep me logged in, right?
When I look at this code:
// Expire an inactive login
if ( $this->obj->session->userdata('loggedin') ) {
$expire_time = time() - $this->obj->config->item('login_expiration');
if ( $this->obj->session->userdata('last_activity') <= $expire_time) {
log_message('debug', "Userauth: check: inactive login, expired");
$this->logout();
}
}
$this->obj->session->set_userdata('last_activity', time());
// make sure we have a language
if ($this->obj->config->item('ua_multi_language')) {
$language = $this->obj->session->userdata('ua_language');
if (empty($language)) {
$language = $this->obj->lang_detect->language();
}
} else { $language = $this->obj->config->item('language'); }
$this->obj->session->set_userdata('ua_language',$language);
// check if "Remember Me" option is enabled and needed
if ( ! $this->obj->session->userdata('loggedin') ) {
$username = $this->obj->remember_me->checkRememberMe();
if ( $username != FALSE ) {
$this->obj->user_group_model->dateStampLogin($username);
log_message('debug', "Userauth: check: Remember Me, login");
$sessdata = array('username' => $username, 'loggedin' => TRUE);
$this->obj->session->set_userdata($sessdata);
$this->obj->remember_me->addRememberMe($username);
}
}
It appears that as soon as the login expires I get logged out and the remember me cookie gets deleted thus when the time comes to check the remember me cookie, there’s nothing there.
Could someone explain to me how this is supposed to work, please. What am I missing?
Thanks in advance,
Ray
P.S. the logout function from Userauth.php for easy reference is:
function logout()
{
log_message('debug','Userauth: Logout: '.$this->obj->session->userdata('username'));
//remember_me used to figure if to expire inactive login
$sessdata = array('username'=>'', 'loggedin' => FALSE );
$this->obj->session->set_userdata($sessdata);
$this->obj->remember_me->removeRememberMe();
}