Это странная ошибка, и я даже не уверен, как начать выяснять, что происходит.
Мы используем Cake 1.3.8 с нашими сессиями в базе данных. Я не использую ACL или любой другой контроль доступа. Если мы перейдем в приложение и немного нажмем вокруг, а затем быстро дважды нажмем кнопку браузера назад (я пробовал в Firefox и Chrome), пользователь выходит из системы чаще, чем не получает сообщение об ошибке «Вы не авторизованы». чтобы получить доступ к этому месту ".
Пока что во всех моих поисках участвовали люди, желающие сделать страницу недоступной, если пользователь вышел из системы, а затем использовал кнопку "Назад". Я не вижу ничего сообщенного в отношении проблемы, которую вижу.
Кто-нибудь знает, если это проблема с Cake или есть какие-то мысли по устранению неполадок?
Обновление: я нашел, где проблема. У меня установлена высокая безопасность, потому что нам нужно закрывать сеанс всякий раз, когда кто-то закрывает браузер. У меня также очень большой тайм-аут, потому что мы делаем большие двоичные загрузки на S3 и не хотим, чтобы пользователь выходил из системы во время загрузки или выгрузки. Конкретный блок кода в cake_sessions.php, вызывающий проблему:
$time = $this->read('Config.time');
$this->write('Config.time', $this->sessionTime);
if (Configure::read('Security.level') === 'high') {
$check = $this->read('Config.timeout');
$check -= 1;
$this->write('Config.timeout', $check);
if (time() > ($time - (Security::inactiveMins() * Configure::read('Session.timeout')) + 2) || $check < 1) {
$this->renew();
$this->write('Config.timeout', 10);
}
}
$this->valid = true;