На производственном сервере codeigniter 3.1.2 (PHP) Уничтожить сессию автоматически перенаправить из графа Facebook API?

Сессия codeigniter уничтожает при перенаправлении с графа APi facebook через некоторое время свою работу, а когда-то уничтожает сессию и ведет пользователя на страницу входа

Вот код сеанса Config.php

$config['see_driver'] = 'database';
$config['see_cookie_name'] = 'ci_session';
$config['see_expiration'] = 0;
$config['see_save_path'] = 'ci_sessions';
$config['see_match_ip'] = FALSE;
$config['see_time_to_update'] = 10000;
$config['see_regenerate_destroy'] = FALSE;

и вот как я устанавливаю сеанс пользователя после входа в систему и аутентификации из базы данных в User_controller.php

private function __set_user_session($user)
{
if(isset($user))
{
$data = [
'user_id' => $user['id'],
'ilocal_user_id' => $user['ilocal_user_id'],
'package_id' => $user['package_id'],
'no_available_business' => $user['no_available_business'],
'name' => $user['name']
];

$this->session->set_userdata($data);
}
}

После подключения фейсбука и перенаправления вызывается этот метод, и он автоматически перенаправляется пользователю на странице входа. Я не знаю, почему он уничтожает сеанс

public function connect_facebook_account($business_id)
{
$this->__load_business($business_id);
try
{
if(isset($this->data['business'] ))
{
$this->fb = new Facebook();
$this->data['facebook_url'] =  $this->fb->get_login_url($business_id);
if(isset($_GET['code']))
{
$social_acccount_info = $this->fb->fetch_access_token();
if($social_acccount_info['status'] === TRUE)
{
$social_acccount_info['business_id'] = $business_id;
// save data of connected account
$this->__create_social_account($social_acccount_info);

redirect($this->session->social_page_redirect);
}
}

if (is_page_connected($business_id) === NULL)
{
$this->data['pages'] = $this->fb->fetch_facebook_pages($business_id);
}}

}
catch(Exception $e)
{
$this->session->set_userdata('message', $e->getMessage() );
}

}

этот код работает нормально на локальном хосте и иногда также работает на производственном сервере, но большую часть времени он разрушает сеанс на производстве, но работает на локальной машине?

любое решение?

7

Решение

Это частая проблема, которую я потратил довольно много времени на отслеживание несколько месяцев назад. Эта статья включает в себя хороший обходной путь, хотя и не в полном разрешении … обычно работает как шарм.

http://blog.thecodingbox.me/codeigniter-frequent-session-expiration-fix/

0

Другие решения

Убедитесь, что в вашем файле config.php используется правильный ключ массива; менять:

$config['see_driver']

в

$config['sess_driver']

..и так далее

Также убедитесь, что имя файла cookie сеанса не одинаково для всех ваших сред, это может привести к потере сеанса при локальной разработке, а также при проверке сайта / dev.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector