不使用PHP会话的PHP HybridAuth库

时间:2014-10-30 18:14:07

标签: php session hybridauth hybridauthprovider

PHP HybridAuth需要使用PHP会话,但是,我们希望避免使用服务器端会话,因为我们在多台计算机上运行应用程序。

我们不介意用户是否需要在需要时每次都与提供商进行身份验证,因此,在使用HybridAuth时是否可以避免使用PHP会话?

[1] http://hybridauth.sourceforge.net/userguide/HybridAuth_Sessions.html

2 个答案:

答案 0 :(得分:1)

简短的回答是否定的。

更长的答案是它是可能的(但在大多数情况下需要在身份验证提供程序上进行会话)但是要解释这里的选项需要太长时间,并且根据您的问题的基调,您需要非常详细的描述潜在的选择。

但这基于一个前提,即你不能跨多台机器进行会话。这是微不足道的。即使在多个数据中心之间运行会话也是一个更简单的解决方案。由于您似乎没有将会话用于除身份验证之外的任何其他事情,因此您不会遇到可伸缩性问题。

答案 1 :(得分:0)

如果您没有为您的应用程序使用PHP会话机制,您可以通过创建自己的存储功能来覆盖默认会话存储,同时了解多个服务器。

例如: http://php.net/manual/en/function.session-set-save-handler.php

然后,您可以在Memcached中设置会话(对于这种特殊情况,您应该只使用带有以下说明的php.ini:http://php.net/manual/fr/memcached.sessions.php),或MySQL,或所有服务器都可访问的物理存储(例如作为NFS)。

虽然,我认为即使你有多个服务器,默认是将用户重定向到相同的IP地址(在DNS Round-Robin声明中,或在标准的负载均衡器中),因此每个服务器上都有一个唯一的存储,其他服务器不可见,应该可以工作。