Единая авторизация двух и более разных сайтов. Как это сделать?
Есть система авторизации на PHP, построенная на сессиях и cookie. Есть два разных сайта (разные домены), где одна и та же база данных user для их регистрации/авторизации. Но так как cookie записываются для конкретного домена, в частности первого сайта, не могу вытащить эти cookie для второго сайта для последующей авторизации на втором сайте.
Как реализовать механизм, чтобы авторизировавшись на одном сайте, второй сайт автоматически видел этого же пользователя и делал его того авторизированным?
Ответы (9)
RSSpytn1k
Все просто
setcookie($name, $data, $time, '/', '.yandex.ru', $secure);
если указать в качестве домена домен с предшествующей точкой то cookie будут доступны всем скриптам домена yandex.ru, а так же его поддоменам.
b-u
В Drupal, например, есть такой модуль Shared Sign-On. Попробуйте на его примере изучить что к чему.
P.S. В связке с мультисайтингом на Drupal отлично работает. Не раз выручал. Это так, к слову.
chizo-nside
При заходе на любые из его сервисов необходимо заново логиниться, хотя и используется одна база Google Accounts
Но вопрос хороший. Даже если и можно как нить использовать куки от других сайтов - то это определенно будет не кроссбраузерно. В експлорере если и покатит - то в опере уж точно нет.
nq49zk
Мы не так давно сделали подобную авторизацию у себя на сайтах (к примеру http://74.ru/passport/), смысл тут в передачи SID - номера текущей сессии на другие домены из списка.
Так как БД одна то мы можем проверить SID и если он активен поставить cookie пользователю с текущего домена.
Переадресация на следующий домен сделана на JS с показом хода авторизации так как доменов много...
Если через header(), то в FireFox есть параметр "network.http.redirection-limit" - по умолчанию равен 20 т.е. 21й редирект не пройдет и пользователь не попадет на сайт из списка...
agg
ionet
olnyshko
Реализовать это на PHP, вероятно, возможно, но это вне моей компетенции.
Ниже - пара ссылок.
nodoxi
по идее никакой разницы нет. стоит попробовать?
pe-ial
Только зарегистрированные и авторизованные пользователи могут отвечать.