public function complete_login($user, $remember = FALSE)
{
if ($remember === TRUE && $this->_config['cookie']['lifetime']) {
$token = Text::random('alnum', 32);
$user->{$this->_config['columns']['token']} = $this->hash($token);
Cookie::set($this->_config['cookie']['key'], $token . '.' . $user->{$this->_config['columns']['username']}, $this->_config['cookie']['lifetime']);
}
if (isset($this->_config['columns']['failed_attempts'])) {
$this->_reset_failed_attempts($user);
}
if (isset($this->_config['columns']['last_login'])) {
$this->_set_last_login($user);
}
if (isset($this->_config['columns']['logins'])) {
$this->_increment_logins($user);
}
$this->_save_user($user);
// Regenerate session (prevents session fixation attacks)
$this->session()->regenerate();
// Store user in session
$this->store_user_in_session($user);
return $this->_user = $user;
}