跨域登录

时间:2015-07-02 07:31:03

标签: php html mysql cookies

我在同一台服务器上有几个域,具有相同的IP和相同的数据库 - 所有5个域都可以访问这些域。

我最近重新设计了我的登录系统,因此在我的主域上,cookie不仅适用于主域,也适用于子域。这意味着如果用户登录到一个区域,他们就会在任何地方登录。哪个好极了!我用他们的哈希(从数据库中获取)编写了一个cookie,并在加载每个页面时检查它,并且它们会自动安全地登录。

这很可爱,但是当切换域时问题就出现了,因为cookie似乎被锁定到域。所以我的其他域名(让我们称之为domain2.com)无法从domain1.com读取cookie。

有什么聪明的方法吗?我可以写一些东西到数据库,比如IP,但这不会很安全,因为我为每个人工作的公司都使用相同的IP,因此它不具体。

或者我想过可能在页面上包含一个隐藏的iframe,它实际上链接到主服务器上的一个页面,然后以某种方式提取信息。

我不确定,但我相信它可以做到。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

浏览器有充分理由不允许从任何其他域读取cookie。

你可以做的是让domain2.com重定向到domain1.com上的一个页面,该页面检查用户是否已登录,如果是,它会使用用户的id重定向回domain2.com,然后可以将其登录。

答案 1 :(得分:-1)

您不应该依赖原始的PHP会话函数集合。
这就是我所做的:

    登录成功后,服务器端应返回"会话ID"通过JavaScript或某些方式浏览器和存储,意味着同时#34;会话ID"应该作为成功的信号存储在数据库中,如果需要,你可以在会话ID旁边登录。

    现在,您可以在任何所需的IP服务器中共享会话ID,并使您的客户端连接到(有些技巧,例如您重定向到新域并发布SID),然后建立PHP会话。

相关问题