【问题标题】:PHP Sessions across multiple domains (not subdomains)跨多个域(不是子域)的 PHP 会话
【发布时间】:2012-09-17 07:55:09
【问题描述】:

我正在尝试进行设置,因此如果您登录到我的网站(使用 codeigniter),会话将转移到我的多个网站的其他域(不是子域)。例如,如果您访问 domain.com 并登录,然后访问 domain2.com,您将已经在 domain2.com 登录。

我不知道从哪里开始。

【问题讨论】:

标签: php codeigniter session


【解决方案1】:

想到的第一个方法是使用一个共享数据库,该数据库将保存“登录”标志,每个域都会轮询和更新。使用 cookie 不是一种选择,因为它们绑定到域。

【讨论】:

  • 如何检测数据库中要拉取的记录?
  • 最初,您会让所有用户至少登录您的所有网站一次,然后将共享 ID 设置为每个域的 cookie。
【解决方案2】:

您需要使用一个域作为主登录系统(keyDomain)。然后对于每个其他 domain2,您在 keyDomain 中查询一个临时密钥,使用此密钥登录到 domain2。 domain2的服务器会检查keyDomain上的key。

您需要在 keyDomain 上使用两个方法。 - 一个构建密钥。它们必须是时间相关的并且在 5 分钟内有效。 - 检查密钥,检查给定密钥与当前密钥,然后再检查前一个密钥,以防查询和检查之间的时隙发生变化。 (当前密钥和前一个密钥都有效,因此有效期为 10 分钟)。

key 只是一个包含 time+user_ID+salt 的字符串,全部编码。

你应该看看 facebook connect 是如何工作的。

【讨论】:

  • 多个域在一台服务器上运行并安装了 Codeigniter。现在有什么办法?
  • 同理,只是简化了服务器之间的通信,只需要在数据库中存储key即可。存储用户 ID + 随机字符串。
  • 如何访问数据库?意思是,我如何识别用户已登录并且数据库中已经有该用户的条目?
猜你喜欢
  • 1970-01-01
  • 2016-08-01
  • 2014-08-03
  • 2012-01-20
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
  • 2014-09-25
  • 2014-05-10
相关资源
最近更新 更多