在具有不同域的多个服务器之间共享会话

时间:2013-04-26 19:00:17

标签: php codeigniter session cookies

我有一点问题。我正在用PHP开发一个分为模块的应用程序。每个模块都是完全独立的,位于单独的服务器上并具有自己的域。例如:

www.moduloprincipal.com.br,www.modulo2.com.br,www.modulo3.com.br等......

问题是我需要当用户对其中一个模块进行身份验证时,用户可以访问同一个用户的其他模块而无需再次进行身份验证。

目前每个应用程序都在不同的服务器上,但如果有必要,它们位于同一台服务器上,这不会有问题。

重要:

  1. 阅读几个主题,但发现没有解决方案真正安全。使用OAuth会很有趣吗?

  2. 目前,该应用程序使用$ _SESSION对用户进行身份验证,但您可以顺利使用$ _COOKIE。

  3. 我正在使用CodeIgniter

  4. 由谷歌翻译翻译。对不起......

1 个答案:

答案 0 :(得分:10)

我可以从头顶探索两个选项:

  • 将所有服务器设置为保存其会话数据的路径相同,请参阅 session.save_path指令。该位置可以是NFS共享 或所有服务器都可以访问的NAS位置。

  • 另一个选项是implement a database session handler,所以 会话数据可以在所有人之间共享 您的服务器访问同一数据库服务器。所以看看PHP文档 custom session handlers