Php 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

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

我使用的是基于OAuth 1的

问题是,我感兴趣的API调用需要指定用户名或用户id,而不管用户当前是否经过身份验证

虽然不方便,但这应该没问题,因为在身份验证期间接收到访问令牌后,Flickr API将返回用户名和用户标识(请参阅“将请求令牌交换为访问令牌”)

但是,HybridAuth在身份验证期间似乎没有将这些信息存储在
$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;
}