проверка session на мультидоменном сайте
Здравствуйте.
Имеем:
несколько доменов второго уровня, которые прилинкованы к одному хосту.
Проблема:
при авторизации на одном из доменов создается кука, но при заходе с другого домена авторизация слетает. как я полагаю, в куке хранится переменная, в которой записывается с какого хоста произошла авторизация и в последующем проверяется этот хост, если заход на другой хост — все, вы чужак.
Что хочу:
что бы не слетала кука когда пользователь заходит на разные хосты, которые в свою очередь привязаны к одному серверу-движку.
Возможно я не правильно высказываюсь, повторюсь на пальцах, как смогу =)
есть домены domen1.ru, domen2.ru и domen3.ru. Все они прилинкованы к одному сайту, к одной директории, к одному движку. Хочу, что бы пользователь один раз авторизовался на любом из этих «доменов» и его авторизация была «сквозной», то есть, потом заешл на domen2.ru и я его знал, обнял, поцеловал и чаем угостил.
P.S. сам ковырялся, но что то не найду, где все это дело проверяется… может ослеп от старости =(
Картинка из CP хостинга, так сказать, для прояснения ситуации:
Как видим, тут прилинковано два домена (плюс два третьего уровня) к одному хосту. Куки привязываются к одному домена и не рабюотают на другом домене. Движок естественно один на эти два домена…
Имеем:
несколько доменов второго уровня, которые прилинкованы к одному хосту.
Проблема:
при авторизации на одном из доменов создается кука, но при заходе с другого домена авторизация слетает. как я полагаю, в куке хранится переменная, в которой записывается с какого хоста произошла авторизация и в последующем проверяется этот хост, если заход на другой хост — все, вы чужак.
Что хочу:
что бы не слетала кука когда пользователь заходит на разные хосты, которые в свою очередь привязаны к одному серверу-движку.
Возможно я не правильно высказываюсь, повторюсь на пальцах, как смогу =)
есть домены domen1.ru, domen2.ru и domen3.ru. Все они прилинкованы к одному сайту, к одной директории, к одному движку. Хочу, что бы пользователь один раз авторизовался на любом из этих «доменов» и его авторизация была «сквозной», то есть, потом заешл на domen2.ru и я его знал, обнял, поцеловал и чаем угостил.
P.S. сам ковырялся, но что то не найду, где все это дело проверяется… может ослеп от старости =(
Картинка из CP хостинга, так сказать, для прояснения ситуации:
Как видим, тут прилинковано два домена (плюс два третьего уровня) к одному хосту. Куки привязываются к одному домена и не рабюотают на другом домене. Движок естественно один на эти два домена…
16 комментариев
Ну типо там ['sys.security.allow_host']=['host1.ru','host2.ru','host3.ru'], а дальше смотреть, куда юзвер тыркнулся и смотреть статус авторизации. Но не пойму как смотреть и как в куку писать.
Движок один, хост один, а на этот хост прилинковано несколько доменов.
Но по умолчанию, видимо, идет проверка, на каком «домене» была произведена авторизация, и если я потом зашел на другой урл, который прилинкован к тому же хосту, авторизация слетает.
Понял вас, буду много думать.
Скорее всего я хреново высказываю то, чего надо сделать =)
Сразу прошу прощения.
но можно придумать способ её восстановить. нужно много думать :)
я как-то делал на подключаемом js-скрипте с «главного» домена с рефрешем, но там иногда косяки случались непонятные.
Сделать например один из доменов головным, например mainsite.ru, и есть несколько дочек site1.ru, site2.ru и так далее. Все процессы авторизации проводить на стороне сайта mainsite.ru, он же будет давать ответы, кто это за пользователь как его зовут. Получается, сервер авторизации.
а контент генерится то в зависимости от печенек
куки тогда будут выставляться вообще для всех сайтов сразу? ))
я так сделаю, и наверное мои печеньки в том числе и на yandex.ru смогут передаваться! (хихи)