Сеанс CakePHP/авторизация периодически выходит из системы
У меня есть сообщения и жалобы от моего пользователя о том, что они будут использовать экран и сразу же вернутся на экран входа в систему при следующем запросе. Это происходит не все время, а случайно.
Я использую CakePHP и компонент аутентификации, которые, похоже, хорошо работают, кроме этой проблемы
Однажды я получил некоторые отзывы на форумах Cake о том, что иногда это вызвано запросом 404, который сбрасывает сеанс, т.Е. Если у вас неработающая ссылка на изображение или отсутствует файл фавикона. У меня открыт firebug, и нет неудачных запросов, поэтому я исключил эту возможность, но пользователь периодически выходит из системы. Похоже, это происходит в разных браузерах и операционных системах.
Ниже приводится краткое описание моих настроек конфигурации: Безопасность.уровень = высокий Session.timeout = 1200// это означает, что мой фактический тайм-аут должен составлять 12 000 секунд Сеанс.сохранить = php
Я действительно в недоумении относительно того, что вызывает эту проблему...
4 answers
У меня также была проблема с моей безопасностью, установленной на высокий уровень. Когда он установлен на высокий, он восстанавливает сеанс по каждому запросу: "Идентификаторы сеансов CakePHP также восстанавливаются между запросами, если "Безопасность.уровень" установлен на "высокий"."
У меня тоже была эта проблема в кроссбраузерном режиме, поэтому я знаю, что это не лучшее решение, но я просто изменил настройку безопасности на среднюю и изменил время ожидания сеанса, чтобы отразить эту настройку, и с тех пор у меня не было никаких проблем.
У меня была аналогичная проблема, я обнаружил, что это проверка user_agent в core.php файл, установите для этого значение false!
То, что происходило, было после обновления страницы, идентификатор сеанса изменился, и я вышел из системы, но в объекте сеанса была ошибка с сообщением о попытке захвата сеанса!!! pr($эта->Сессия);
Установите для этого значение false в core.php! Настроить::запись ('Session.checkagent', false);
Проверьте свой Auth->allow
или ->deny
, потому что может быть, что ваш пользователь получает доступ к ограниченной части или действию вашего контроллера(контроллеров).
Во-вторых, проверьте свой конкретный Sanitize
CakePHP, потому что параметры "высокой безопасности" часто вызывают проблемы.
404 страницы сбросить сеанс? Я никогда об этом не слышал.
Я думаю, что ваша проблема находится где-то в процедурах аутентификации. Если вы ограничите слишком много вещей, может случиться так, что некоторые созвездия запросов завершатся неудачей из-за их отсутствующих атрибутов.
Например: пользователь пытается получить доступ к вашему веб-сайту, его имя пользователя содержит некоторые строки, которые приводят к неправильной интерпретации имени пользователя. Имя можно было найти в базе данных, но аутентификация не смогла связать его с запросом.
Подобные ошибки всегда скрываются в вашем коде, где вы их не ожидали увидеть.
Безопасность.высокий уровень сделает это. установите его на средний в core.php