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


HybridAuth not authenticating when using custom php session path

我有一个问题,当使用HybridAuth插件。我已经包括了插件作为一个弹出在我的主页。当从主页点击登录按钮插件将加载在colorbox。

在我的服务器上,我不能使用默认的php会话保存路径,所以我把它设置为php临时路径来保存会话,就像下面在我的根文件夹index.php中一样。

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

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

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

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

所示的错误页面
"You cannot access this page directly."

任何帮助都会很感激。

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

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

我将print_r会话查看注册的内容。为什么默认会话路径有问题?我不会试图改变它,确保它先起作用。这改变了HybridAuth的主要功能。

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

,

如果您有shell访问权限,请确保web服务器用户对目录有写权限;这样问题就解决了。

经常:RTM和发现使用isConnectedWith

isConnectedWith () 如果当前用户连接到给定的对象,则返回true或false提供者。Hybrid_Auth::isConnectedWith()使用PHP会话。要知道更多信息请参见HybridAuth Sessions一节。

Hybrid_Auth::isConnectedWith(provider)

其中provider是被测试服务的名称。例如:Hybrid_Auth::isConnectedWith('Twitter')

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

如果你想要一个连接的提供商列表:Hybrid_Auth::getConnectedProviders()

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

API !

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