Kohana 3.2 регенерация идентификатора сеанса при каждом запросе - PullRequest
1 голос
/ 23 августа 2011

Я надеюсь, что на этот вопрос еще не ответили, я просмотрел некоторое время и действительно не видел ответа.

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

Я установил Session :: $ default = 'database' в моем загрузчике.Мой сессионный конфиг выглядит так:

return array(
    'database' => array(
        /**
         * Database settings for session storage.
         *
         * string   group  configuation group name
         * string   table  session table name
         * integer  gc     number of requests before gc is invoked
         * columns  array  custom column names
         */
        'name'     => 'trucero_session',
        'lifetime' => 1200,
        'group'    => 'default',
        'table'    => 'sessions',
        'gc'       => 500,
        'columns'  => array(
            /**
             * session_id:  session identifier
             * last_active: timestamp of the last activity
             * contents:    serialized session data
             */
            'session_id'  => 'session_id',
            'last_active' => 'last_active',
            'contents'    => 'contents'
        ),
    ),
);

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Я не думаю, что Лоран действительно понял ваш вопрос, потому что должен быть только один идентификатор сессии, созданный и использованный между обновлениями страницы - вот и вся суть в том, что вы можете повторно использовать один и тот же сеанс каждый раз, когда Вы получаете доступ к странице.

Новый идентификатор сеанса создается, когда вы открываете страницу либо в новом браузере, либо закрываете существующий браузер, а затем открываете новый или уничтожаете текущий сеанс (например, выходя из своей страницы), а затем создаете новый (.. входя в систему).

Но я обнаружил похожую проблему в Kohana 3.2, где мои скрипты генерировали несколько идентификаторов сеансов для каждой прочитанной страницы, и сеансы не «читались» назад, потому что новый идентификатор_ сеанса создавался при каждом обновлении / доступе к странице. Мне удалось отследить эту проблему до браузера Google Chrome (в моем случае), и, покопавшись, я нашел этот пост:

http://forum.kohanaframework.org/discussion/10303/session-problem-with-ie-and-chrome/p1

Что в основном говорит о том, что для правильной работы сеанса базы данных Kohana в Chrome и IE необходимо установить Cookie :: domain либо в FALSE, либо в определенный домен.

0 голосов
/ 23 августа 2011

Нельзя полагаться на идентификатор сеанса, потому что он действительно генерируется при каждом запросе. Если вам нужен какой-то идентификатор, вам придется использовать собственный.

...