Как я могу войти в несколько приложений в разных доменах один раз?

StackOverflow https://stackoverflow.com/questions/4813498

Вопрос

Например, у меня есть 2 приложения, одно в abc.com, и еще один в xyz.com.

Теперь я хочу сделать, если один пользователь вошел в систему abc.com, тогда он также будет вошел в систему xyz.com автоматически. Означает, что после входа в систему abc.com, и просто откройте xyz.com На новой вкладке браузера он будет показан, что он уже вошел в систему.

Это то же самое, что msn.com а также hotmail.com, если вы вошли в систему msn.com, и открыт hotmail.com, Вы можете видеть, что уже вошли в систему.

я использую CI, и для информации в системе входа в систему я использовал функции сеанса CI (который печенье на самом деле), но кажется, что куки не могут быть разделены по разным доменам.

Я пытался использовать Curl, но Curl не может сделать xyz.com В самом деле Сделайте печенье.

И я также искал в Google, многие люди предложили передать идентификатор сессии, но проблема в том, что нет никакой связи между abc.com а также xyz.com, Как я могу пройти сеанс? Если я сохраняю идентификатор сеанса в базе данных, то как я могу определить, какой пользователь должен использовать этот идентификатор сеанса? По IP не безопасен, очевидно: D

Помогите мне, пожалуйста!

Это было полезно?

Решение

Вы можете открыть iframe на xyz.com, который будет подключаться к ABC.com, затем использовать Ajax/JS, чтобы перенаправить какой -то токен на xyz.com с iframe, вызывая функцию JS из iframe.

Так что это будет выглядеть как:

Xyz.com:

function authAbcUser(token) { 
    //During this function you will set a cookie for this user on XYZ.com
}
<iframe height="0" width="0" src="http://www.abc.com/auth.php?token"></iframe>

Abc.com/auth.php:

parent.authAbcUser(token);

Другие советы

Попробуйте использовать это и заставить его работать с CI

http://www.assembla.com/wiki/show/attachpass/single_sign_on_process

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top