不使用PHP会话的PHP HybridAuth库

不使用PHP会话的PHP HybridAuth库,php,session,hybridauth,hybridauthprovider,Php,Session,Hybridauth,Hybridauthprovider,PHP HybridAuth需要使用PHP会话,但是,我们希望避免使用服务器端会话,因为我们在多台机器上运行应用程序 我们不介意用户是否需要在每次需要时都向提供者进行身份验证,所以,在使用HybridAuth时是否可以避免使用PHP会话 [1] 简短的回答是否定的 一个较长的答案是,这是可能的(但在大多数情况下,需要在身份验证提供商上进行会话),但是在这里解释选项将花费太长的时间,并且从您的问题语气来看,您需要对潜在选项进行非常详细的描述 但这是基于一个前提,即不能跨多台机器进行会话。这是微不足

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

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

[1] 简短的回答是否定的

一个较长的答案是,这是可能的(但在大多数情况下,需要在身份验证提供商上进行会话),但是在这里解释选项将花费太长的时间,并且从您的问题语气来看,您需要对潜在选项进行非常详细的描述


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

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

例如:

然后,您可以在Memcached中设置会话(对于这种特殊情况,您应该只使用php.ini和以下说明:),或者在MySQL中设置会话,或者在所有服务器(如NFS)都可以访问的物理存储中设置会话


尽管如此,我认为即使您有多台服务器,默认情况下也会将用户重定向到相同的IP地址(在DNS循环声明中,或在标准负载平衡器中),因此每台服务器上都应该有一个其他服务器看不到的唯一存储。如果您不想使用会话,那么您想使用什么?没有别的东西是安全的。您可以将服务器端会话数据存储到多台服务器可以访问的单个位置,甚至可以使用一个数据库会话包装器,如果所有服务器接触同一个数据库,则所有服务器都可以访问该包装器。帮助我们了解在多台计算机上运行应用程序与不需要5o使用会话之间的关系。会话变量对于每个用户都是唯一的。这有什么问题?我们将加密用户id存储在用户的浏览器cookie中,因此不需要使用服务器端会话。因为在我们的应用程序中,我们将加密用户id存储在用户的浏览器cookie中,因此不需要使用服务器端会话。当使用HybridAuth进行集成时,我们发现他们使用了$\u会话的多种方式,这打破了我们的设计。。