Я работаю над проектом с использованием zend framework, php, mysql на ubuntu.
Я создал имя хоста test.dev на своем локальном компьютере и использую аутентификацию zend. Когда пользователь аутентифицируется с использованием аутентификации zend, я устанавливаю переменную сеанса для идентификатора вошедшего в систему пользователя. Я использую эту переменную сеанса (идентификатор пользователя) на разных страницах для уверенной аутентификации.
Вопрос: Теперь мне нужно создать поддомен. Я создал новое имя хоста mypage.test.dev на моем локальном компьютере. Оба имени хоста указывают на один и тот же каталог, например / var / www / test / public. Но когда я вхожу в test.dev , мне приходится снова входить в поддомен mypage.test.dev . Даже переменные сеанса test.dev недоступны на mypage.test.dev .
Как я могу войти на все поддомены, используя один логин?
Спасибо.
3 ответа
Через некоторое время я получил свое решение.
Я добавил следующую строку в config.ini
session.cookie_domain = .test.dev
Затем добавил следующую строку в Bootstrap.php
Zend_Session::setOptions( $this->getOption('session') );
И переменные сеанса работают для всех поддоменов test.dev
Переменные сеанса хранятся для каждого конкретного адреса домена. И поэтому, если веб-сайт плохо закодирован, и вы входите в систему на http://mydomain.com, а затем заходите на сайт как http://www.mydomain.com, вы столкнетесь с той же ошибкой.
Одним из возможных решений этого является настройка веб-службы, которая позволяет вам получить доступ к другому домену и получить любые сохраненные переменные сеанса, а также аутентифицировать пользователя. Так, например, если я войду в test.dev, а затем перейду на mypage.test.dev, mypage.test.dev вызовет test.dev/auth-service/ для аутентификации пользователя, и если он успешно, затем верните все сохраненные переменные сеанса, чтобы их можно было сохранить в mypage.test.dev.
Возможно, более четким подходом было бы всегда получать доступ к данным сеанса только из одного или другого домена и всегда получать к ним доступ строго через веб-службу, чтобы интерфейс к данным сеанса оставался согласованным на обоих сайтах. Тем не менее, это дает возможную производительность, поскольку, очевидно, быстрее просто получить доступ к сеансу напрямую, чем через веб-службу.
Вы ищете это: http: //blog.pracucci .com / 2008/09/24 / zend-framework-and-session-cookies-through-subdomains /
Похожие вопросы
Связанные вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.