Общие сеансы PHP в домене

Я видел несколько ответов на это в 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 . Вы можете хранить свои сессии в базе данных и получать доступ к ним из любого домена.

    1. Определите основной сеанс сервера (я делаю это в сочетании с memcached)

    2. используйте Ajax / JSON (P) для запроса сеанса с этого сервера, это позволяет вам обмениваться сеансами по нескольким доменам

    3. Повторное использование этого сеанса

    В интересах любого, кто интересуется этой функциональностью, нет простого ответа, которого я боюсь. Google «Единый вход», и он вернется с технологией, а некоторые решения будут доступны.

    Что касается использования htaccess, чтобы скрыть доменное имя, это невозможно, поскольку оно может использоваться для вредоносных действий.

    Я успешно реализовал систему для выполнения моих требований.