Проблема сеанса codeigniter в браузере Safari - PullRequest
0 голосов
/ 19 сентября 2019

Мы используем следующее для проверки сеанса на всех наших функциях контроллера.

$ this-> session-> userdata ('Admin_logged_in')

https://www.codeigniter.com/user_guide/libraries/sessions.html

Но на iPhone X, использующем браузер Safari, он возвращает пустое значение.Массив сеансов не устанавливается для каждой функции, поэтому пользователь не может войти в интерфейс.

Если сеанс удален из функции, пользователь может войти в систему и функция работает правильно.Эта проблема возникает для всех проектов Codeigniter, которые мы разрабатываем.

Вот различные решения, которые мы попробовали:

Сессия CodeIgniter 3 не работает в Safari

http://mydons.com/fixed-mac-os-safari-codeigniter-sessionloginauthentication-issue/

https://forum.codeigniter.com/thread-63184.html

https://github.com/bcit-ci/CodeIgniter/issues/2880

Проверка сеанса:

public function index()
{
    if ($this->session->userdata('Admin_logged_in')) {
        $session_data = $this->session->userdata('Admin_logged_in');
        $id = $session_data['userId'];
        $data['Headding']="Dashboard";
        $this->template->load('admin_layout', 'contents', 'admin/Admin_Dashboard', $data);
    } else {
        redirect('Admin', 'refresh');
    }
}

Где установлен сеанс:

$sess_array = array();
foreach ($result as $result) {
    $sess_array = array( 
        'userId' => $result->userId, 
        'mobile' => $result->mobile, 
        'email'  => $result->email, 
        'status' => $result->status, 
        'RoleID' => $ans['roleId'], 
    );
}
$this->session->set_userdata('Admin_logged_in', $sess_array);

codeigniter Сессия в браузере Safari

Никто не дал правильный ответ.Решение дано как Проблема с сеансами Codeigniter на Iphone .

Но где мне нужно добавить var timestamp = new Date (). GetTime ();

1 Ответ

0 голосов
/ 19 сентября 2019

чувак ... попробуйте сохранить только идентификатор пользователя и проверить .. работает ли он ... использовать библиотеку аутентификации ... которая доступна ... и сделать еще одну вещь ... в изменении конфигурации

$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;

до

$config['sess_save_path'] = FCPATH . 'yourfoldername/';
$config['sess_match_ip'] = TRUE;

и создайте папку yourfoldername по пути, в котором находятся файлы .htaccess и index.php

...