Обработка истекших сессий - PullRequest
1 голос
/ 17 февраля 2012

Многие из моих контроллеров имеют функции, которые выглядят следующим образом.Как лучше всего использовать CI, когда заканчивается сеанс и вызывается такая функция?

$this->foo_model->create_bar($this->session->userdata('userid'), $bookId);

Ответы [ 2 ]

3 голосов
/ 17 февраля 2012

Возможно, я не совсем понимаю ваш вопрос, но когда вы звоните $this->session->userdata('something') для сеанса с истекшим сроком, он просто возвращает FALSE.

Итак, лучший способ - проверить, не является ли переменная FALSE? Как и в случае с любой другой переменной, которая может не соответствовать требуемому значению:

if($this->session->userdata('userid')){}
//or check it into the model's method, wherever you prefer

Где и когда это сделать, сильно зависит от вашего дизайна. Если вам всегда нужно делать одну и ту же проверку, вы можете сделать это библиотекой или функцией модели, так что вам просто нужно написать свой код один раз и просто вызвать этот метод. Если вам нужно сделать это раньше всего, вы можете подумать о том, чтобы поместить его в конструктор или, как предложил @Jordan Arsenault, создать родительский MY_Controller, который выполняет проверку, и все ваши обычные контроллеры расширяют его. На самом деле, это зависит от вашей архитектуры, и вы не предоставили достаточно информации, чтобы ответить на этот вопрос.

Все, что я могу сказать, это сделать ваши методы отказоустойчивыми, всегда проверять правильное значение перед передачей остальной части вашего кода (если истекший сеанс нарушает ваш рабочий процесс)

0 голосов
/ 17 февраля 2012

Вы можете использовать файлы cookie для восстановления сеанса с истекшим сроком действия. Например, вы можете создать токен для пользователей, когда они входят в ваше приложение. Этот токен имеет связанный идентификатор пользователя, который ваше приложение знает глобально, а затем сохранить файл cookie на компьютере пользователя, который содержитtoken.each каждый раз, когда истекает сеанс, запрашивает клиентские куки-файлы и проверяет, доступен ли этот куки-файл, затем с помощью его идентификатора пользователя воссоздайте сеанс.войдите снова.Когда пользователь выходит из системы, удалите токен и файл cookie

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