Решение SSO, которое я здесь реализовал, работает следующим образом:
Существует главный домен, login.mydomain.com со скриптом
master_login. php, который управляет logins.
У каждого клиентского домена есть сценарий client_login. php
Все домены имеют общую базу данных сеансов пользователей.
Когда клиентский домен требует, чтобы пользователь был войдя в систему, он перенаправляет на главный домен
(login.mydomain.com/master_login.php). Если пользователь не выполнил вход
в мастер, он запрашивает у пользователя аутентификацию (ie. Отобразить страницу входа в систему).
После аутентификации пользователя он создает сеанс в базе данных. , Если пользователь
уже аутентифицирован, он ищет его идентификатор сеанса в базе данных.
Главный домен возвращается в домен клиента (client.mydomain.com/client_login.php), передавая его. ID сеанса.
. Клиентский домен создает Cook ie, сохраняя идентификатор сеанса от мастера. Клиент может узнать зарегистрированного пользователя, запросив общую базу данных, используя идентификатор сеанса. Примечания:
Идентификатор сеанса - это уникальный глобальный идентификатор, сгенерированный по алгоритму из RF. C 4122. Master_login. enter code here
php будет перенаправлять только на домены в своем белом списке. Мастер и клиенты могут находиться в разных домены верхнего уровня. Например. client1.ab c .com, client2.xyz.com, login.mydomain.com