Codeigniter tank auth - пользователь выходит из системы по неизвестной причине - PullRequest
2 голосов
/ 04 декабря 2010

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

if($this->tank_auth->is_logged_in()) {

Если он зарегистрирован, я загружаю модель, но если нет, я делаю перенаправление на страницу входа.Это работало так в течение одного месяца, но теперь я расширяю свое приложение и собираю некоторые другие контроллеры, которые используют ту же технику, но файлы находятся в другой папке.Предыдущее рабочее приложение по-прежнему работает отлично, но в этом приложении из новой папки (это в основном новый модуль для этого приложения, использует ту же страницу входа в систему, но перенаправляет по-разному в зависимости от выбора пользователем модуля) Я могу войти правильно, я могу сделатьлюбой запрос к контроллеру без проблем, но в какой-то момент, он говорит мне, что пользователь не вошел в систему. Это не сеанс истек или что-то в этом роде, как будто я делаю один запрос сейчас, продлевая мой сеанс и следующий на 3 секундыинтервал позволяет пользователю выйти из системы ... Я не сделал ничего другого с моими новыми контроллерами, но все же, через некоторое время, иногда это занимает 5 минут, иногда 15 минут, выходит из системы ... Я не знаю почему,что-то мешает моей сессии?Я не использую сессию ни для чего другого ...

Кто-нибудь знает, о чем это?Или любое предложение?Я могу дать дополнительную информацию, если потребуется.

Большое спасибо.

РЕДАКТИРОВАТЬ: новый модуль состоит из большего количества контроллеров в той же установке Codeigniter, он работает с той же конфигурации CI, тот же танкбиблиотека auth и функции копируются в основной контроллер запросов следующим образом:

class Requests extends Controller
{
    function __construct()

    {
        parent::__construct();

        $this->load->helper(array('form', 'url'));
        $this->load->helper('date');
        $this->load->library('form_validation');
        $this->load->library('tank_auth');
    }

..............
more functions
..............

    function getServices() { /// One of the functions that the new module uses
            if (!$this->tank_auth->is_logged_in()) {
                return;
            } else {
                $this->load->model('requests/getServices');
                $data['tid'] = $_POST['tid'];
                $this->getServices->showData($data);
            }

        }

Ответы [ 2 ]

2 голосов
/ 04 декабря 2010

Я подозреваю, что задержка исчезновения куки имеет отношение к $ config ['time_to_update'] (по умолчанию 300 секунд).

Файлы cookie обновляются (переустанавливаются) каждые 5 минут, еслипеременные сеанса не изменены.Таким образом, может случиться так, что cookie становится недействительным с точки зрения новой части приложения, но класс Session не реализует его до тех пор, пока не пройдет 300 секунд, после чего он очищается и пользователь выходит из системы..

Можете ли вы предоставить более подробную информацию о том, где находится новый код.Это в той же установке CodeIgniter?и т.д.

0 голосов
/ 09 декабря 2010

Я возился со своей сессией в одной функции загрузки изображений, которую я использовал в другом приложении. Я стер эти строки сессий, и теперь это работает так, как должно быть. Код сеанса был PHP-собственным $ _SESSION кодом на случай, если кому-то интересно.

Спасибо.

...