Обмен информацией между форумом vBulletin и платформой микроблогов status.net

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

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

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

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

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

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

Теперь, не могли бы вы дать мне несколько советов о том, как сделать так, чтобы все эти субдомены совместно использовали один сеанс?

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

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

Спасибо.

1 ответ

Решение

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

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

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

Другие вопросы по тегам