Сложная проблема с поддоменами cookie - как обрабатывать записи / чтения в перенаправлениях - PullRequest
2 голосов
/ 31 января 2010

Я использую Perl для этого, но я не уверен, что это имеет значение, это необработанный HTTP.

У меня есть различные сервисы, для которых я создал центральный логин.Службы могут запускаться сторонними организациями за пределами сайта, и я надежно обрабатываю все рукопожатия, при этом центральный сайт всегда поддерживает состояние входа в систему с помощью сеансов и файлов cookie сеанса.

Проблема, с которой я столкнулся, заключается в том, чтопредоставить единый трекер входа в систему для служб в моем собственном доменном пространстве, таких как service1.example.com , service2.example.com и т. д., но куки-файлы сеанса не "прилипают""для поддоменов, как предполагалось.

С example.com (или www.example.com ), я устанавливаю:

Set-Cookie: SESSION=12345; domain=.example.com; path=/;

Затем происходит перенаправление на целевой поддомен службы.

Файл cookie НЕ просматривается на service1.example.com , service2.example.com , ...Поскольку браузер НЕ ОТПРАВЛЯЕТ куки в эти субдомены.

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

Это не похоже на проблему с браузером.

Может кто-нибудь пролить свет на то, что может происходить?

1 Ответ

1 голос
/ 07 ноября 2010

Проверьте совместимость вашего заголовка. Я проверяю заголовок моего сайта

Set-Cookie: sid=z2weVI8nHMp5upZaoyacr6KhR0BnYs57; Version=1; Domain=.domain.com; Path=/; expires=Tue, 07 Dec 2010 10:48:53 GMT

и он приносит sid cookie на поддомен forum.domain.com

...