2

我正在尝试为HybridAuth 库创建 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$adapter

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

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

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

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字段设置为access_tokens_raw = null.

如果需要,我可以提供我的 Flickr 提供程序代码 ( ),它与​​和Flickr.php几乎相同。Twitter.phpinitialize()loginBegin()

这个问题困扰了我一段时间,非常感谢您的意见!我欢迎任何允许我保留经过身份验证的 Flickr 用户名或 user_nsid 而不损害其他提供商的 HybridAuth 身份验证的解决方案。

4

0 回答 0