Сообщество-аутентификатор Codeigniter 3 - кажется, случайно теряет переменную сеанса - PullRequest
0 голосов
/ 14 января 2019

Я использую Community-Auth с Codeingniter V3 для аутентификации, хранения уровней авторизации и т. Д.

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

Проблема возникает, когда контроллер вызывает подпрограмму verify_min_level, которая должна просто проверить, что они вошли в систему. Но он возвращает FALSE, что означает, что Community-Auth считает, что они не вошли в систему, и код перенаправляет на экран входа в систему.

Поскольку это происходит случайно и без видимой причины (пользователь некоторое время не был активен и т. Д.), Это сводит моих пользователей с ума.

Кто-нибудь еще видел такое поведение?

1 Ответ

0 голосов
/ 16 января 2019

Кажется, я обнаружил проблему. Этот конкретный клиент хотел сеансы, которые заканчивались только тогда, когда они выходили из системы или закрывали окно браузера. Поэтому я установил истечение сеанса на ноль (0).

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

Что, похоже, решило проблему, так это полностью отключить сборку мусора, установив для параметра PHP sessions.gc_probability значение 0.

Нет сборки мусора, нет преждевременного удаления переменных сеанса.

Я выполняю ночную работу CRON для сборки мусора из таблицы ci_sessions.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...