10

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

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

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

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

重要的:

  1. 阅读了几个线程,但没有找到真正安全的解决方案。使用 OAuth 会很有趣吗?

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

  3. 我正在使用 CodeIgniter

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

4

1 回答 1

11

您可以探索我脑海中的两个选项:

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

  • 另一种选择是实现数据库会话处理程序,因此会话数据可以在访问同一数据库服务器的所有服务器之间共享。因此,请查看自定义会话处理程序的 PHP 文档。

于 2013-04-26T19:10:45.800 回答