Создание единой сессии для 2х сайтов

Morch

Новичок
Создание единой сессии для 2х сайтов

Привет! Мне необходимо синхронизировать 2 интернет-магазина следующим образом:
посетитель заходит на любой их них (например, первый), логинится, добавляет какие-либо товары в корзину, но в определённый момент он переходит на второй сайт, на котором он должен бытьььььь уже АВТОМАТИЧЕСКИ залогинен и иметь в корзине те товары, которые он уже добавил в первом. С товарами не проблема совсем, а вот как стороннему серваку определить, что пользователь залогинен - пока непонятно. Структура БД идентична (если рассматривать юзеров) Вероятно, будет отдельная, третья, БД с таблицами юзеров и заказов с моделями. Оба сайта находятся на сервере, к которому я имею полный доступ.

Единственное, что мне пока пришло в голову - это тупо на все ссылки на второй магазин поставить переменную гетом, которой я буду пересылать ID юзера, а в БД заносить краткосрочную сессию, с которой будет сверяться ID, полученый ГЕТом во втором магазине. Но тут есть пара минусов - я могу же и просто в адресной строке набрать www.secondShop.ru, или же поставля автологин на первом, а попадя на второй, буду злиться, что опять надо логиниться.

Какие мысли?
 

Adelf

Administrator
Команда форума
при логине на одном - делать ифрейм на другой, для создания куки.
если магазов будет больше - лучше подумать об отдельном логин-домене.. как passport.yandex.ru, логиниться на нем...
 

crocodile2u

http://vbolshov.org.ru
Погугли на предмет "сквозная авторизация".

Вкратце, реализацию можно сделать примерно так:

1. Есть сервер авторизации. Им может выступать один из существующих сайтов (С1).
2. В таком случае, сайт С1 всегда знает, авторизован ли пользователь, с ним проблем нет.
3. На втором сайте (С2), в случае если сессионная кука не стоит, в HTML-код страницы добавляется подключение Javascript'а с сайта С1: < script src=http://C1/session.php >.
4. Скрипт session.php с сайта С1 проверяет сессионную куку, и, если она установлена, выдает JS-код, который выставляет такую же куку на сайте С2: document.cookie = "PHPSESSID=qwerty;...."; Опционально можно еще location.reload() сделать или там вызвать функцию - обработчик успешной авторизации.

Надеюсь, понятно объяснил.
 

zerkms

TDD infected
Команда форума
dimagolov
это же <script src= ;-) а как работают гуглокарты или FBJS, например )
 

ХакИрФсимагущий

[засикречино]
Еще как вариант можно редикт при авторизации сделать с индификатором сессии и солью и потом обратно редикт отправить.

Соль чисто для безоопасности.

-~{}~ 26.09.10 01:06:

и еше сессии с 2х доменов хранить в одном месте(относится к ПХП сессиям), но у вас как я понял все в БД и + ко всему время жизни куки-сесии надо продливать или вставить фрейм,
но некоторые фреймы поисковики за вриусы принимают,
еще вариант можно прозрачную чудо картинку 1x1 сделать, а не фрейм
тоесть авторизация саздаст одинаковые куки и на 1 домине и на 2м домине, а потом через маленькую картинку будет продливать время жизни, куки которые на данном домине не нужны. И поставить проверку если куки одного из домена пусты, а другой авторизован, то сделать сброс авторизации. Это понадобится если ты попадешь в уникальный промежуток времени когда куки1 домена уже удалены а куки 2ого еше нет.

-~{}~ 26.09.10 01:47:

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

Adelf

Administrator
Команда форума
Morch
самое главное - не обращать внимания на предыдущий пост.

Читай товарища crocodile2u.
 
Сверху