Сеанс CakePHP/авторизация периодически выходит из системы


У меня есть сообщения и жалобы от моего пользователя о том, что они будут использовать экран и сразу же вернутся на экран входа в систему при следующем запросе. Это происходит не все время, а случайно.

Я использую CakePHP и компонент аутентификации, которые, похоже, хорошо работают, кроме этой проблемы

Однажды я получил некоторые отзывы на форумах Cake о том, что иногда это вызвано запросом 404, который сбрасывает сеанс, т.Е. Если у вас неработающая ссылка на изображение или отсутствует файл фавикона. У меня открыт firebug, и нет неудачных запросов, поэтому я исключил эту возможность, но пользователь периодически выходит из системы. Похоже, это происходит в разных браузерах и операционных системах.

Ниже приводится краткое описание моих настроек конфигурации: Безопасность.уровень = высокий Session.timeout = 1200// это означает, что мой фактический тайм-аут должен составлять 12 000 секунд Сеанс.сохранить = php

Я действительно в недоумении относительно того, что вызывает эту проблему...

Author: croixhaug, 2009-10-15

4 answers

У меня также была проблема с моей безопасностью, установленной на высокий уровень. Когда он установлен на высокий, он восстанавливает сеанс по каждому запросу: "Идентификаторы сеансов CakePHP также восстанавливаются между запросами, если "Безопасность.уровень" установлен на "высокий"."

У меня тоже была эта проблема в кроссбраузерном режиме, поэтому я знаю, что это не лучшее решение, но я просто изменил настройку безопасности на среднюю и изменил время ожидания сеанса, чтобы отразить эту настройку, и с тех пор у меня не было никаких проблем.

 9
Author: Matt, 2009-10-15 18:51:05

У меня была аналогичная проблема, я обнаружил, что это проверка user_agent в core.php файл, установите для этого значение false!

То, что происходило, было после обновления страницы, идентификатор сеанса изменился, и я вышел из системы, но в объекте сеанса была ошибка с сообщением о попытке захвата сеанса!!! pr($эта->Сессия);

Установите для этого значение false в core.php! Настроить::запись ('Session.checkagent', false);

 1
Author: Alex Payne, 2010-02-12 10:45:48

Проверьте свой Auth->allow или ->deny, потому что может быть, что ваш пользователь получает доступ к ограниченной части или действию вашего контроллера(контроллеров).

Во-вторых, проверьте свой конкретный Sanitize CakePHP, потому что параметры "высокой безопасности" часто вызывают проблемы.

404 страницы сбросить сеанс? Я никогда об этом не слышал.

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

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

Подобные ошибки всегда скрываются в вашем коде, где вы их не ожидали увидеть.

 0
Author: Julius F, 2009-10-15 16:44:50

Безопасность.высокий уровень сделает это. установите его на средний в core.php

 0
Author: dogmatic69, 2009-10-16 10:47:49