【问题标题】:keep an authenticated user across servers跨服务器保留经过身份验证的用户
【发布时间】:2011-01-30 06:20:21
【问题描述】:

在 LAMP 环境中,如果用户在 server1 上托管的 example.com 域上对自己进行身份验证,我如何让他在 server2 上托管的 forum.example.com 上保持登录状态?

【问题讨论】:

    标签: php mysql session cross-domain


    【解决方案1】:

    一种快速而肮脏的方法,是对域“.example.com”使用cookies 前面的时间段将允许该域中的任何服务器访问cookie

    php.net documentation: setcookie()

    【讨论】:

      【解决方案2】:

      一种选择是使用数据库来存储 server1 和 server2 都可以访问的用户会话。

      或者,您可以探索第 3 方身份验证服务,例如 OpenID

      还可以选择完全依赖客户端浏览器中存储的 cookie,但这有点吓人。

      【讨论】:

      • 我真的很喜欢跨服务器数据库的想法,但我做了一个快速测试,我无法从另一个域访问我的数据库。我确实可以访问 curl 是否可以让 server2 通过 curl 从 server1 获取用户数据?
      • 好吧,一切皆有可能,但恐怕你会重新发明轮子。使用 SSO 方法。
      【解决方案3】:

      您可以依赖一些 Single Sign-on 实现,例如 CAS

      【讨论】:

      • 哎呀,看起来好复杂。
      • 这取决于你认为什么是“复杂的”。学习和阅读文档是不是很复杂,还是您不想在服务器上产生过多开销?
      【解决方案4】:

      在 Stack Overflow 上多次询问和回答 - 解决方案是使用 SSO

      【讨论】:

        猜你喜欢
        • 2015-05-16
        • 1970-01-01
        • 1970-01-01
        • 2020-11-15
        • 2016-01-17
        • 2010-11-24
        • 1970-01-01
        • 1970-01-01
        • 2021-05-26
        相关资源
        最近更新 更多