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

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

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

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

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

Я пытался использовать CURL, но CURL не может заставить xyz.com действительно сделать куки.

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

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

Ответы [ 2 ]

2 голосов
/ 27 января 2011

Вы можете открыть 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);
0 голосов
/ 20 февраля 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...