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

Тема в разделе "PHP", создана пользователем Steell, 4 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Steell

    Steell Создатель

    Регистр.:
    12 янв 2009
    Сообщения:
    23
    Симпатии:
    5
    Собственно такой вопрос:

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

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    735
    Симпатии:
    423
    Если самопис, то через базу данных.

    Вот обсуждение по одной из CMS (как пример можно глянуть:( смотреть

    можно типа этого реализовать!
     
  3. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    737
    Симпатии:
    263
    Читай 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. Но механизм такой.
     
    Steell нравится это.
  4. Steell

    Steell Создатель

    Регистр.:
    12 янв 2009
    Сообщения:
    23
    Симпатии:
    5
    Спасибо за ответ. Вопрос по кукам тогда: не совсем понял что такое $path при установки куков. И в каких случаях это применяется
     
  5. t0wer

    t0wer BlackHerald

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

    Если этот атрибут не указан, то значение cookie распространяется только на документы в той же директории, что и документ, в котором было установлено значение cookie.
     
    Steell нравится это.
  6. pslava

    pslava

    Регистр.:
    16 май 2007
    Сообщения:
    618
    Симпатии:
    122
    FxbА что мешает сделать через сесии - авторизировал, сохранил в сесию результат и гуляй по поддоменам:)
     
Статус темы:
Закрыта.