gpt4 book ai didi

php - 在 PHP 中的同一服务器上跨多个域共享 session

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:08 25 4
gpt4 key购买 nike

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

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

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

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

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

  3. 使用 CURLOPT_COOKIEFILE 和 CURLOPT_COOKIEJAR 的 CURL 请求 - 我玩过这个并且它工作正常,但不知道它是否安全而不是性能 killer 。

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

请建议怎么做?

最佳答案

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

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

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

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

关于php - 在 PHP 中的同一服务器上跨多个域共享 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20064219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com