HybridAuth会话变量问题

时间:2013-09-18 13:53:29

标签: php authentication oauth flickr hybridauth

我正在尝试为HybridAuth library创建一个Flickr提供程序,以便对用户进行身份验证,但遇到了问题。

我正在使用基于OAuth 1的Flickr API

问题是我感兴趣的API调用需要指定用户名或用户ID,无论用户当前是否经过身份验证。

虽然不方便,但这应该没问题,因为在身份验证期间接收到访问令牌后,Flickr API会同时返回用户名和user_nsid(http://www.flickr.com/services/api/auth.oauth.html,请参阅“为访问令牌交换请求令牌”)。

但是,在验证期间,HybridAuth似乎并未将这些信息存储在$adapter变量中。我挖掘了代码,发现它们实际上是存储的。在var_dump loginFinish()函数中的以下几行后快速Provider_Model_OAuth1.php表明它们确实存储在$this->access_raw_tokens$this与{{1}相同}):

$adapter

到目前为止一切顺利。但是,我尝试在自定义页面上调用Flickr适配器:

// request an access token
$tokens = $this->api->accessToken( $oauth_verifier );

// access tokens as received from provider
$this->access_tokens_raw = $tokens;

代码执行正常,但当我尝试try{ // initialize Hybrid_Auth with a given file $hybridauth = new Hybrid_Auth($config); $adapter = $hybridauth->authenticate("Flickr"); } catch(Exception $e){ echo $e; } 时,var_dump($adapter);字段设置为access_tokens_raw

如果需要,我可以提供我的Flickr提供商代码(access_tokens_raw = null),这与Flickr.phpTwitter.php时的initialize()几乎相同。

这个问题一直困扰着我,我非常感谢你的投入!我欢迎任何允许我保留经过身份验证的Flickr用户名或user_nsid而不会影响其他提供商的HybridAuth身份验证的解决方案。

0 个答案:

没有答案