Я видел несколько ответов на это в SOF, но большинство из них связано с использованием поддоменов, из которых никто не работал для меня. Обычным является то, что использование session.cookie_domain
, которое, по моему мнению, будет работать только с субдоменами.
Меня интересует решение, которое касается сделок с совершенно разными доменами (и включает в себя возможность субдоменов). К сожалению, крайние сроки проекта – это то, что они есть, время не на моей стороне, поэтому я перехожу к знаниям и опыту SOF.
В текущем кратком user_id
проекта можно войти на один сайт, который в настоящее время хранит только user_id
в сеансе, а затем сможет получить это значение в другом домене в пределах той же среды сервера. Данные сеанса хранятся / извлекаются из базы данных, где session id
является первичным ключом.
Я надеюсь найти «легкий wieght» и «easy» для реализации решения.
Система использует собственный шаблон проектирования Model View Controller, поэтому все запросы (включая разные домены) запускаются через один сценарий начальной загрузки. Используя имя домена в качестве переменной, это определяет, какой контекст должен отображаться для пользователя.
Один из вариантов, который действительно имел потенциал, – это использование скрытого изображения и использование тега alt для установки user id
. Мои первые впечатления показывают, что это сразу кажется «слишком легким» (если возможно) и пронизанным недостатками безопасности. Disscuss?
Еще один вариант, который я рассмотрел, – это использование IP и User Agent для аутентификации, но, опять же, я считаю, что это не будет надежным вариантом из-за общих сетей и изменения IP-адресов.
Мой третий вариант (и предпочтительный), который я рассматривал и пока не видел, обсуждается с использованием htaccess
чтобы обмануть пользователя, думая, что они находятся в другом домене, когда infact apache перенаправляется; что-то вроде
www.foo.com/index.php?domain=bar.com&controller=news/categoires/1
но отображается пользователю как
www.bar.com/news/categories/1
foo.com
представляет «домен основного сайта», через который проходят все запросы, и bar.com
– это то, что пользователь считает, что они обращаются. Запрос контроллера диктует запрашиваемую страницу и просмотр. Это возможно?
Есть ли другие варианты? За и против?
Заранее спасибо!!!
Вы думали об использовании session_set_save_handler . Вы можете хранить свои сессии в базе данных и получать доступ к ним из любого домена.
Определите основной сеанс сервера (я делаю это в сочетании с memcached)
используйте Ajax / JSON (P) для запроса сеанса с этого сервера, это позволяет вам обмениваться сеансами по нескольким доменам
Повторное использование этого сеанса
В интересах любого, кто интересуется этой функциональностью, нет простого ответа, которого я боюсь. Google «Единый вход», и он вернется с технологией, а некоторые решения будут доступны.
Что касается использования htaccess, чтобы скрыть доменное имя, это невозможно, поскольку оно может использоваться для вредоносных действий.
Я успешно реализовал систему для выполнения моих требований.