HybridAuth在使用自定义php会话路径时不进行身份验证

时间:2014-07-04 07:01:54

标签: php session hybridauth

使用HybridAuth插件时出现问题。我已将插件作为弹出窗口包含在我的主页中。当从主页单击登录按钮时,插件将加载到彩色框中。

在我的服务器中,我无法使用默认的php会话保存路径,因此我已将其设置为php临时路径,以便在我的根文件夹的index.php中保存会话,如下所示。

$dir = sys_get_temp_dir();
session_save_path($dir);

更新此代码后,该插件正在验证客户成功选择并返回我的网站的社交媒体,但它没有通过以下条件,

$hybridauth->isConnectedWith( $_GET["connected_with"] ) // it is always return false

在第二种情况下,我也更新了plugin文件夹的index.php中的会话保存路径,但是当时在登录弹出窗口而不是显示登录UI时,它直接显示如下错误页面

"You cannot access this page directly."

任何帮助将不胜感激。提前谢谢。

3 个答案:

答案 0 :(得分:2)

问题是您的默认会话路径:

$dir = sys_get_temp_dir();
session_save_path($dir);

我会打印_r会话以查看已注册的内容。为什么默认会话路径有问题?我不会尝试改变它,并确保首先工作。这改变了HybridAuth的主要功能。

为什么不能使用默认的php会话保存路径?你在共享主机上吗?

-

如果您有shell访问权限,请确保Web服务器用户具有该目录的写入权限;应该照顾这个问题。

答案 1 :(得分:1)

经常:RTM and discover the use of isConnectedWith

  

<强> isConnectedWith()   如果当前用户连接到给定用户,则返回true或false   供应商。 Hybrid_Auth :: isConnectedWith()使用PHP Sessions。要知道   更多参考HybridAuth Sessions部分。

Hybrid_Auth::isConnectedWith(provider)

提供商是测试服务的名称。例如: Hybrid_Auth :: isConnectedWith(&#39; Twitter&#39;)

确保$ _GET返回正确的服务名称。

如果您需要已连接的提供商列表: Hybrid_Auth :: getConnectedProviders()

如果您想检查会话的数据: Hybrid_Auth :: getSessionData()

API!

答案 2 :(得分:0)

hybridauth/index.php的顶部添加您自己的自定义会话处理程序(位于与config.phplive.php相同的目录中)。 这会强制Hybrid Auth使用您的自定义会话处理程序。