Копирование файлов cookie с основного домена на поддомен - PullRequest
0 голосов
/ 08 июля 2010

У моего приложения есть пользовательское пространство, к которому раньше обращался URL-адрес, например domain.com/~username, но я нахожусь в процессе преобразования этого в использование поддоменов (username.domain.com). Тем не менее, я столкнулся с проблемой, которая, я надеюсь, кто-то может иметь представление о том, как обойти.

В настоящее время посетители сайта пользователя получают файл cookie в форме user<id>_authentication (где <id> - идентификатор пользователя сайта, который они посещают), для которого установлен домен www.domain.com. Однако теперь, когда я переключаюсь на субдомены, я хочу найти эти файлы cookie и перенести их в новый файл cookie с именем authentication для каждого субдомена, используя субдомен в качестве домена cookie. Однако массив rails cookies не находит файлы cookie основного домена.

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

Можно ли как-нибудь получить файлы cookie с основного домена, или у кого-то есть другие предложения о том, как я могу передать файлы cookie?

Обновление: Извините, я не дал понять, что cookie-файл устанавливается только в том случае, если посетитель активно аутентифицирует себя, отправив форму на сайт пользователя.

Ответы [ 2 ]

1 голос
/ 08 июля 2010

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

Вам потребуется прочитать cookie, аутентифицироваться и затем написать новый более разрешающий cookie, прежде чем cookie сможет быть прочитан поддоменом.

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

1 голос
/ 08 июля 2010

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

Но ... Один из способов добиться этого - проверить наличие нового куки-файла и, если его не удается найти, перенаправить на новую страницу в основном домене, указав возвращаемый URL.

На этой новой странице проверьте наличие файла cookie старого стиля, установите файл cookie нового стиля и перенаправьте на исходный URL. если у них нет файла cookie старого стиля, перенаправьте в область входа в систему.

надеюсь, это поможет.

...