例如,我有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
真正制作Cookie。
我也在谷歌周围搜索,很多人建议传递会话ID,但问题是,abc.com
和xyz.com
之间没有链接,我怎么能通过会话?如果我将会话ID存储在数据库中,那么如何识别哪个用户应该使用此会话ID?显然,IP并不安全:D
拜托,帮助我!
答案 0 :(得分:2)
您可以在xyz.com上打开一个连接到abc.com的iframe,然后使用ajax / js通过从iframe调用js函数从iframe转发某种令牌到xyz.com。
所以它看起来像:
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);
答案 1 :(得分:0)