Php HybridAuth会话变量问题
我正在尝试为创建Flickr提供程序,以便对用户进行身份验证,但遇到了一个问题 我使用的是基于OAuth 1的 问题是,我感兴趣的API调用需要指定用户名或用户id,而不管用户当前是否经过身份验证 虽然不方便,但这应该没问题,因为在身份验证期间接收到访问令牌后,Flickr API将返回用户名和用户标识(请参阅“将请求令牌交换为访问令牌”) 但是,HybridAuth在身份验证期间似乎没有将这些信息存储在Php HybridAuth会话变量问题,php,authentication,oauth,flickr,hybridauth,Php,Authentication,Oauth,Flickr,Hybridauth,我正在尝试为创建Flickr提供程序,以便对用户进行身份验证,但遇到了一个问题 我使用的是基于OAuth 1的 问题是,我感兴趣的API调用需要指定用户名或用户id,而不管用户当前是否经过身份验证 虽然不方便,但这应该没问题,因为在身份验证期间接收到访问令牌后,Flickr API将返回用户名和用户标识(请参阅“将请求令牌交换为访问令牌”) 但是,HybridAuth在身份验证期间似乎没有将这些信息存储在$adapter变量中。我深入研究了代码,发现它们实际上是存储的。在Provider\u M
$adapter
变量中。我深入研究了代码,发现它们实际上是存储的。在Provider\u Model\u OAuth1.php
的loginFinish()
函数的下面几行之后快速var\u dump
显示它们确实存储在$this->access\u raw\u令牌中($this
与$adapter
相同):
到目前为止还不错。但是,我尝试在自定义页面上调用Flickr适配器:
try{
// initialize Hybrid_Auth with a given file
$hybridauth = new Hybrid_Auth($config);
$adapter = $hybridauth->authenticate("Flickr");
}
catch(Exception $e){
echo $e;
}
代码执行得很好,但是当我尝试var\u dump($adapter)时
将access\u tokens\u raw
字段设置为access\u tokens\u raw=null
如果需要,我可以提供我的Flickr提供程序代码(Flickr.php
),当涉及到initialize()
和loginBegin()
时,它几乎与Twitter.php
相同
这个问题困扰了我一段时间,我非常感谢您的意见!我欢迎任何可以让我保留经过身份验证的Flickr用户名或用户ID的解决方案,而不会影响其他提供商的HybridAuth身份验证。您最终得到了吗?我也有同样的问题!嘿@FlamingMoe!我不再维护我编写的代码,但我相信我采用了一种黑客方法,在其值被销毁之前,将Flickr.php
提供程序中的access\u tokens\u raw
属性存储在一个新的会话变量中(例如$\u session['flick\u user\u nsid']=$this->access\u tokens\u raw;
),然后在适配器初始化后从会话变量中检索值。也就是说,我确实相信Flickr API已经改变了,所以我不确定它是否仍然使用OAuth1,或者后续API调用是否需要用户nsid。祝你好运
try{
// initialize Hybrid_Auth with a given file
$hybridauth = new Hybrid_Auth($config);
$adapter = $hybridauth->authenticate("Flickr");
}
catch(Exception $e){
echo $e;
}