2010-05-25 4 views
0

Мне нужно интегрировать vBulletin 4.0.3 Publishing Suite с платформой для микроблогов status.net. Первое, что мне нужно сделать, это заставить эти 2 поделиться 1 сеансом, так что пользователь, зарегистрированный на форумах vBulletin, также войдет в систему status.net и наоборот.Обмен сеансом между форумом vBulletin и платформой microblogging status.net

Я установил различные компоненты VBulletin в различных подобластей:

  1. forums.sample.com - форумы администрации форума
  2. blogs.sample.com - администрации форума блоги
  3. sample.com - управление контентом форума

Все это указывает на то же место (.../public_html/index.php), которое включает в себя соответствующий файл php (content.php для sample.com | blog.php для blogs.sample. com | forum.php для forums.sample.com) в зависимости от $ _SERVER ['HTTP_HOST']

Я настроил vBulletin для использования одного файла cookie.domain (.sample.com) для всех этих 3 доменов, чтобы посещать разные Домены не прерывают сеанс.

У меня также есть status.sample.com, который является субдоменом, где установлен статус.net. Конфигурация субдомена различна, поэтому document_root на самом деле является подпапкой (.../public_html/status /) в sample.com

Теперь, пожалуйста, дайте мне несколько указаний о том, как сделать все эти поддомены разделяющими одну сессию ?

Я не уверен, что это помогает, но, как я понимаю, status.net не выполняет пользовательскую обработку сеанса по умолчанию, но его можно включить, чтобы он начал хранить данные сеанса в таблице базы данных, называемой " сессии». vBulletin хранит сеансы в базе данных по умолчанию.

Любые советы будут оценены.

Спасибо.

+0

Хорошо, вот дополнительная информация - Statusnet: после простого входа в поле данных нет сериализованных объектов. Заметные записи данных (помимо session_id как первичный ключ) - это «начальный», «session_id», «user_id» и «session_token». vBulletin: после простого входа в поле данных нет сериализованных объектов. Все записи разделяются на поля.Известные поля: «userid», «sessionhash», «idhash», «loggedin», «lastactivity» и «location» Теперь, как трудно было бы вставить строку при входе в систему и обновить начальную/последнюю активность в обеих базах данных, матч на обоих концах? – jaz

ответ

1

Даже удостоверение личности они разделяют сессию, это бесполезно для вас. Они должны использовать сеанс таким же образом, что означает:

  • магазин одни и те же переменные с теми же ключами (или каждое приложение положить в сессии, помимо он данные ему нужно, данные другим нужно).
  • Если они не используют точно такие же данные для выполнения логинов, они оба должны иметь доступ к имени пользователя/определениям/независимо от того, что хранится в сеансе другого приложения.
  • Если они хранят объекты, то оба они должны иметь доступ к соответствующим определениям классов

Итак, если вы не создаете собственные приложения и не задумываетесь об этом с самого начала, забудьте о «сеансах обмена». Внесите единый вход, например CAS или OpenID.

+0

Поддерживает ли CAS или OpenID ту же функциональность, которую я запланировал, - пользователь вошел в систему/вышел через сайт? – jaz

+0

С CAS, да. OpenID не имеет глобального выхода. – Artefacto

+0

Ну, status.net поддерживает OpenID из коробки, в vBulletin нет, но ни один из них не поддерживает CAS. Вы действительно думаете, что было бы намного проще привести CAS в микс, а не просто обновить строку базы данных в обоих концах? Btw Я добавил комментарий к моему вопросу, чтобы помочь прояснить некоторые вещи, которые вы подняли. – jaz

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