【问题标题】:Sharing session across multiple domains on same server in PHP在 PHP 中的同一台服务器上跨多个域共享会话
【发布时间】:2015-12-23 10:19:04
【问题描述】:

我需要为我的一个项目实施解决方案,其中我有多个域 + 多个子域,它们都需要共享同一个会话。所有域和子域都将指向连接到单个数据库的单个应用程序。

表示如果用户从任何域登录将能够访问应用程序的其他域的安全页面。用户可以通过点击链接或在浏览器中打开新标签来更改域。

我浏览了一些文章并找到了以下提到的一些解决方案:-

  1. 数据库中的会话 - 如果来自同一网络的其他用户使用相同的用户代理点击怎么办?

  2. iFrame 消息传递 - 我在某处听说 iFrame 在文档加载时呈现,然后在显示某些页面内容后检查会话会惹恼用户。

  3. 带有 CURLOPT_COOKIEFILE 和 CURLOPT_COOKIEJAR 的 CURL 请求 - 我玩过这个,它工作正常,但不知道它是否安全而不是性能杀手。

  4. 单点登录 (SSO) - 我需要一些研发来实现这一点,这将是最后的选择。

请建议怎么做?

【问题讨论】:

    标签: php session-cookies


    【解决方案1】:

    只是为了验证我没有错,您需要在所有应用程序之间共享用户会话。

    正如上面所说的,您可以使用上面的 4 个选项。但是,我想专注于将会话放入数据库的第一个选项,并建议将会话保存在共享目录或服务器中的另一个选项。

    1. 数据库中的会话 - 您的问题的答案(如果来自同一网络的其他用户使用相同的用户代理点击怎么办?)是您将有不同的会话id 的值来唯一标识表中的每一行。因此,无需担心。但缺点是,每次都需要数据库连接并触发查询时,即初始化会话时,即针对每个页面。

    2. 共享目录/服务器中的会话 - 配置所有应用程序,使所有应用程序都将会话存储在共享位置。共享位置可以是目录或安全服务器。这可以通过使用session_set_save_handler 轻松实现。

    【讨论】:

      猜你喜欢
      • 2014-07-11
      • 2010-09-19
      • 1970-01-01
      • 2016-08-01
      • 2014-04-16
      • 2015-04-13
      • 1970-01-01
      • 2015-06-27
      相关资源
      最近更新 更多