2009-10-15 4 views
13

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

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

я получил некоторую обратную связь на торте форумах сразу, что иногда это вызвано 404 запроса, который сбрасывает сеанс, т.е. если у вас сломанная ссылка на изображение или отсутствует файл favicon. У меня есть firebug open и никаких неудачных запросов нет, поэтому я решил это как возможность, но пользователь периодически выходит из системы. Это похоже на браузеры и операционные системы.

Ниже приводится краткое изложение моих настроек конфигурации: Security.level = высокий Session.timeout = 1200 // это значит, мое фактическое время ожидания должно быть 12000 секунд Session.save = PHP

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

ответ

9

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

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

+0

спасибо, я дам этот выстрел – croixhaug

+0

Ты спасатель. – Dirk

+0

Спасибо! 8 больше, чтобы пойти .... – Justin

0

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

Во-вторых, проверьте свой конкретный Sanitize CakePHP, так как опции «высокой безопасности» часто бывают неприятными.

404 страницы перезагружают сеанс? Я никогда не слышал об этом.

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

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

Такие ошибки всегда скрываются внутри вашего кода, где вы этого не ожидали.

+0

Извините, мне, вероятно, нужно было указать далее .. процесс входа в систему с Auth в порядке. При попытке доступа к/admin/urls у меня установлено, что для этого требуется Auth, и он делает это для правильных экранов. Вход в систему не проблема, он находит имена в базе данных, но проблема в том, что он будет спорадически изгнать меня, когда я уже нахожусь. – croixhaug

+0

Запрос 404, по-видимому, может перезапустить Cake Auth/Session, а не общую проблему с PHP – croixhaug

+0

Попробуйте настроить cakephp еще раз, включая вашу базу данных (и т. Д.), Это может помочь. –

0

Security.level on high будет делать это. set it to medium в core.php

1

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

Что происходило после обновления страницы, изменилось идентификатор сеанса, и я вышел из системы, но в объекте Session произошла ошибка: «Попытка сеанса захвата» !!! pr ($ this-> Session);

Установите это значение false в core.php! Конфигурация :: write ('Сессия.checkAgent ', false);

+0

большое спасибо за это. Настройка :: записи ('Session', массив ( 'значения по умолчанию' => 'базы данных', 'checkAgent', ложный, 'обработчик' => массив ( 'модель' => '' cake_sessions ) // 'timeout' => 480 // 8 часов )); –

Смежные вопросы