CakePHP сеанс/авторизация прерывается
У меня есть отчеты и жалобы от моего пользователя, что они будут использовать экран и сразу же вернуться к экрану входа в систему по следующему запросу. Это происходит не всегда, а случайно.
Я использую CakePHP и компонент Auth, которые, похоже, работают хорошо, кроме этой проблемы.
У меня появилась некоторая обратная связь на форумах Cake, когда это иногда вызывает запрос 404, который сбрасывает сеанс, т.е. если у вас сломанная ссылка на изображение или отсутствующий файл favicon. У меня есть firebug open и никаких неудачных запросов нет, поэтому я решил это как возможность, но пользователь периодически выходит из системы. Это похоже на браузеры и операционные системы.
Ниже приведено краткое описание моих настроек конфигурации:
Security.level = высокий
Session.timeout = 1200//это означает, что мой фактический тайм-аут должен составлять 12 000 секунд
Session.save = php
Я действительно в недоумении относительно того, что вызывает эту проблему...
Ответы
Ответ 1
У меня также была проблема с высоким уровнем безопасности. Когда вы установите его на высокий уровень, он восстанавливает сеанс по каждому запросу:
"Идентификаторы сеанса CakePHP также восстанавливаются между запросами, если" Security.level "установлен на" высокий "."
У меня тоже была проблема с перекрестным браузером, поэтому я знаю, что это не лучшее решение, но я просто изменил настройку безопасности на среду и изменил тайм-аут сеанса, чтобы отразить эту настройку и не имел никаких проблем с тех пор.
Ответ 2
У меня была аналогичная проблема, я обнаружил, что это проверка user_agent в файле core.php, установите для этого значение false!
Что происходит, после обновления страницы изменился идентификатор сеанса, и я вышел из системы, но в объекте Session возникла ошибка, указывающая на попытку захвата сеанса!!!
пр ($ this- > Session);
Установите значение false в файле core.php!
Configure:: write ('Session.checkAgent', false);
Ответ 3
Проверьте Auth->allow
или ->deny
, потому что может быть, что ваш пользователь обращается к ограниченной части или действию вашего контроллера (ов).
Во-вторых, проверьте свой конкретный Sanitize
CakePHP, потому что параметры "высокой безопасности" часто могут вызвать проблемы.
404 страницы reset сеанс? Я никогда не слышал об этом.
Я думаю, что ваша проблема находится где-то в процедурах аутентификации. Если вы ограничиваете слишком много вещей, это может случиться, что некоторые созвездия запросов потерпят неудачу из-за недостающих атрибутов.
Например: UserOne пытается получить доступ к вашему веб-сайту, его имя пользователя содержит некоторые строки, которые вызывают неправильную интерпретацию имени пользователя.
Имя можно найти в базе данных, но аутентификация не может связать ее с запросом.
Ошибки, подобные этому, всегда скрываются внутри вашего кода, где вы не ожидали, что они будут.
Ответ 4
Security.level на высокой скорости сделает это. установите его в medium в core.php