Кроссдоменная авторизация на сайте

Статус
В этой теме нельзя размещать новые ответы.

Steell

Создатель
Регистрация
12 Янв 2009
Сообщения
23
Реакции
5
Собственно такой вопрос:

Есть домен с 2 уровня, у него куча поддоменов. Интересует как сделать прозрачную авторизацию между ними.
 
Читай php.net/setcookie

PHP:
  setcookie(session_name(),session_id(),0,'/','.domain.com');
будет на всех поддоменах домена domain.com

Если надо на нескольких разных доменах - то тут надо шаманить с аяксом. В принципе можно и без аякса, главное после логина на все остальные домены поотправлять запрос, а там его словить. Самое простое -
PHP:
new Image().src='http://domain1.com/setkookie.php?sid=1234567890';
new Image().src='http://domain2.com/setkookie.php?sid=1234567890';
...

А в setcookie.php словить $_GET[sid], поставить как куку, и выплюнуть назад картинку 1x1 пиксел. И потом, при заходе юзера на любой из этих сайтов, он уже будет с кукой, персональной для этого сайта.

И да, тут еще проверок всяких не помешало бы для доп. секьюрити. Т.е. передавать надо не только sid. Но механизм такой.
 
Спасибо за ответ. Вопрос по кукам тогда: не совсем понял что такое $path при установки куков. И в каких случаях это применяется
 
path - этот атрибут устанавливает корневой путь к документам, для которых действительно значение cookie. Например, указание "path=/students/pupkin/" приведет к тому, что значение cookie будет действительно для всех документов Васи Пупкина в директории /students/pupkin/. Для того, чтобы cookie отсылались при запросе любого документа сервера, необходимо указать корневой каталог сервера ("path=/").

Если этот атрибут не указан, то значение cookie распространяется только на документы в той же директории, что и документ, в котором было установлено значение cookie.
 
FxbА что мешает сделать через сесии - авторизировал, сохранил в сесию результат и гуляй по поддоменам:)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху