2013-11-19 4 views
3

Мне нужно реализовать решение для одного из моих проектов, где у меня есть несколько доменов + несколько поддоменов, и все они должны совместно использовать один и тот же сеанс. Все домены и поддомены будут указывать на одно приложение, которое связано с одной базой данных.Обмен сеансом через несколько доменов на одном сервере в PHP

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

Я прошел через некоторые статьи и нашли несколько ниже упомянутых решений: -

  1. сессии в базе данных - Что делать, если другой пользователь из одной сети с таким же агентом пользователя попадает?

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

  3. запрос CURL с CURLOPT_COOKIEFILE & CURLOPT_COOKIEJAR - я играл с этим, и она работает хорошо, но не знаю, если это безопасно и не убийца производительности.

  4. Single Sign On (SSO) - Мне нужны некоторые R & D, чтобы осуществить это, и это будет последний вариант.

Просьба предложить, что делать?

ответ

0

Просто убедитесь, что я не ошибаюсь, вам нужно поделиться сеансом пользователя во всех ваших приложениях.

Как правильно сказано выше, вы можете использовать 4 варианта выше. Тем не менее, я хотел бы сосредоточиться на первом варианте, который ставит сессию в БД и хотел бы предложить другой вариант, как сохранение сеансов в общем каталоге или сервере.

  1. сессии в БД - Ответ на ваш вопрос (? Что делать, если другой пользователь из одной сети с тем же агентом пользователя хитов) это вы будете иметь значение другого сеанса идентификатор, чтобы однозначно идентифицировать каждую строку в таблице , Поэтому нет необходимости беспокоиться об этом. Но недостатком является то, что каждый раз, когда требуется соединение с БД, и запрос будет запущен, когда сеанс инициализируется, т. Е. Для каждой отдельной страницы.

  2. Сессии в общей папке/сервере - Настройте все свои приложения таким образом, чтобы все приложения хранилища в общем местоположении. Совместное расположение может быть либо каталогом, либо защищенным сервером. Это можно легко достичь, используя session_set_save_handler.

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