Класс Codeigniter Session отключен для конкретного контроллера

У меня уже есть приложение в codeigniter, теперь я разрабатываю андроид из этого приложения. Использование этого приложения в качестве серверной части и выполнение клиентской консоли в android. На сервере я поддерживаю сеанс. Но в запросе android я не могу поддерживать сеанс. Вместо этого я создаю GUID на сервере при первом запросе запроса на вход и хранении на стороне клиента, а также хранящем его в таблице клиентов, а затем для каждого запроса клиент отправит идентификатор GUID для аутентификации. Теперь моя проблема заключается в том, что каждый запрос, получаемый с android codeigniter, создает сеанс с различным идентификатором сеанса (каждый запрос генерирует новый идентификатор сеанса). Как избежать создания сеанса и хранения в базе данных. (Только для запроса android, но запрос браузера его нужно хранить)

Теперь ваш вопрос довольно старый, но для тех, у кого есть эта проблема, вы должны расширить библиотеку CI_Session и переопределить метод sess_create . В рамках вашего метода проверьте, какой пользовательский агент выполняет запрос. Затем вы разрешаете создание сеанса только в том случае, если пользовательский агент НЕ является платформой Android.

public function sess_create { //load user agent library $this->CI->load->library('user_agent'); /**test request to see if its from android * you can update the user_agents collection to suit more specific needs */ if($this->agent->platform() !== 'android'): //create session for all non-android platforms parent::sess_create(); endif; } 

Мне удалось расширить CI_Session в Codeigniter 3.1.3. Вот что я сделал:

Создание файлового приложения / библиотек / Session / MY_Session.php

 <?php defined('BASEPATH') OR exit('No direct script access allowed'); class MY_Session extends CI_Session { public function __construct(array $params = array()) { if ( $this->ignore_sessions() ) return; parent::__construct(); } function ignore_sessions() { $uri = str_replace ("//", "/", $_SERVER['REQUEST_URI']); if ( strpos($uri, '/ignore_this_controller/') === 0 ) return true; return false; } } 

Вы также можете добавить «session» в свой config / autoload.php:

 $autoload['libraries'] = array('session',....)