Опять проблема с сессиями - PullRequest
       0

Опять проблема с сессиями

0 голосов
/ 14 сентября 2011

Я уже задавал аналогичный вопрос , но у меня снова проблема с сессиями в CakePHP.

Проблема в том, что когда кто-то получает электронное письмо со ссылкой внутри и щелкает по этой ссылке, сеанс прекращается.

  • Если пользователь вошел на сайт после нажатия на ссылку электронной почты, его сеанс завершается.

  • Если пользователь зашел на сайт и скопировал ссылку электронной почты вместо того, чтобы щелкать по ней, тогда все в порядке.

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

Ответы [ 3 ]

0 голосов
/ 14 сентября 2011

У вас есть Security.level на "high" в config/core.php? Если это так, попробуйте «средний» или «низкий».

Также убедитесь, что почтовый клиент не открывает браузер, отличный от того, в котором запущен сеанс.

0 голосов
/ 24 декабря 2011

Когда для CakePHP «Security.level» задано значение «высокий» или «средний», CakePHP устанавливает PHP session.referer_check в качестве имени хоста вашего сайта.

Однако, когда пользователь щелкает ссылку внутри почтового клиента, проверка проверки реферера не проходит, и сеанс помечается как недействительный.

Что вам нужно сделать, это следующее:

1) Установите для CakePHP «Security.level» значение «low»

OR

2) Укажите пользовательскую конфигурацию сеанса для CakePHP, как показано здесь , установив для session.referer_check пустую строку, таким образом:

ini_set('session.referer_check', '');
0 голосов
/ 14 сентября 2011

если пользователь зашел на сайт после нажатия на ссылку письма, его сеанс умер

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...