Php 如何一次登录到不同域中的多个应用程序?

Php 如何一次登录到不同域中的多个应用程序?,php,codeigniter,cookies,multiple-domains,Php,Codeigniter,Cookies,Multiple Domains,例如,我有两个应用程序,一个在abc.com中,另一个在xyz.com中 现在我想做的是,如果一个用户登录了abc.com,那么他也将自动登录xyz.com。这意味着,在他登录abc.com,并在浏览器的新选项卡中打开xyz.com后,他将显示他已登录 它与msn.com和hotmail.com相同,如果您登录msn.com,并打开hotmail.com,您可以看到您已经登录 我使用的是CI,对于登录信息,我使用了CI的会话功能(实际上是cookie),但cookie似乎不能在不同的域之间共享

例如,我有两个应用程序,一个在
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不能真正制作cookies

我也在谷歌搜索过,很多人建议传递会话id,但问题是,
abc.com
xyz.com
之间没有链接,如何传递会话?若我将会话id存储在数据库中,那个么如何确定哪个用户应该使用该会话id?通过IP显然不安全:D


请帮帮我

您可以在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>

尝试使用此功能并使其与CI一起工作


hmmmmm,sry但是安全性如何呢?我想我已经找到了使它安全的方法,很多次了!检查请求的来源可能是什么?它不会完全安全,但对于较小的应用程序可能会安全。请参阅此问题中给出的解决方案和解释,这基本上是此问题的重复:那么您所寻找的基本上是单点登录(简称SSO)解决方案?阅读OpenID(如本文所用),它经过了尝试和测试(非常方便)。
parent.authAbcUser(token);