Все зависит от того, как основной сайт отслеживает сеанс пользователя.
Обычно это делается с помощью куки; Я просто собираюсь предположить, что это так. Браузер сохраняет этот файл cookie с доменом, из которого он получен, и присоединяет его снова при любом новом запросе, поступающем в этот домен или его поддомен .
Вы захотите проверить, что cookie присоединен к домену customer.com
, а не, например, www.customer.com
. Это потому, что forum.customer.com
является поддоменом первого, , но не вторым . В последнем случае вы не вообще увидите cookie в программном обеспечении вашего форума. Программное обеспечение CMS имеет некоторый контроль над тем, к какому домену прикреплен файл cookie.
У большинства браузеров есть возможность показать, какие куки хранятся для определенного сайта. Например, в Firefox есть опция «Информация о странице» в меню правой кнопки мыши. В Chrome вы можете нажать Ctrl + Shift + I , чтобы перейти к инструментам разработчика и просмотреть вкладку «Хранилище».
Файл cookie, вероятно, содержит одно из следующего:
- Фактические данные, такие как имя пользователя.
- Идентификатор сеанса, который CMS может найти в своей базе данных и таким образом получить имя пользователя.
В любом случае, также вероятно, что включен соленый хеш, который не позволяет пользователю вмешиваться в данные cookie.
Вы можете получить доступ к cookie в Rails по имени, просто используя cookies[:something]
из своего контроллера. Это задокументировано в ActionController :: Cookies (который смешан с ActionController::Base
).
Как только вы получите данные cookie, вам придется имитировать то, что делает ваша CMS. Вам, вероятно, придется (по порядку):
- Проверка целостности файла cookie путем (повторного) применения хеш-функции к данным cookie и сравнения ее с хешем, включенным в файл cookie.
- Подключение к базе данных CMS.
- Возможно запросить идентификатор сеанса.
- Запрос профиля пользователя.