Реализовываете один логин для трех сайтов на PHP? - PullRequest
0 голосов
/ 07 июля 2011

У меня есть сеть для трех связанных сайтов.

 - site1.domain.com
 - site2.domain.com
 - site3.domain.com

В настоящее время каждый поддомен имеет ~ 100 учетных записей в трех отдельных базах данных.Они авторизуются отдельно для каждого домена.Я хотел бы создать site0.domain.com, который позволит им проходить аутентификацию в одной базе данных, а затем автоматически регистрировать пользователей на каждом сайте, когда они их посещают.

Я не слишком уверен, как это сделать,Я слышал такие термины, как Open ID и Federations и Single Sign On, но я никогда не хотел интегрировать подобные сайты раньше.

Какие-либо советы, во-первых, как это сделать технически (я использую PHP / MySQL), а во-вторых, каков хороший план для переноса существующих учетных записей пользователей, чтобы использовать единый вход без прерывания обслуживания?

Я предполагаю, что пользователь может войти через форму на сайте site0, и он авторизует пользователя в базе данных и создаст строку базы данных для своего сеанса с сопровождающим токеном.Токен устанавливается в файле cookie переменной сеанса.Пользователь заходит на сайт 1, сайт 2 или сайт 3 и, если в запросе GET установлена ​​переменная токена, он подключается к той же базе данных, которую использует сайт 0, выполняет поиск токена и возвращает правильную строку пользователя.Это довольно много, как это работает?Любые дополнительные технические советы были бы хорошими ...

Что касается миграции, я думаю, я могу попросить пользователей создать свой логин site0 или "подключить" свою учетную запись пользователя к логину site0, если они еще не всераз они зашли на один из сайтов.Через 30 дней все сайты перестают принимать обычные логины, и пользователь вынужден создать логин site0.Когда они создают логин site0, он запрашивает имя пользователя / пароль для site1, site2 или site3, чтобы получить правильную информацию о пользователе.

1 Ответ

0 голосов
/ 07 июля 2011

Взгляните на что-то вроде SimpleSAMLphp Это отличная библиотека для подобных вещей.

...