Php 如何使用我从tmhOAuth获得的用户令牌/密码?

Php 如何使用我从tmhOAuth获得的用户令牌/密码?,php,twitter,oauth,Php,Twitter,Oauth,我正在为我的站点使用优秀的tmhOAuth php库。但是,我不知道如何访问从我的auth.php接收的用户令牌/密码?(例如,当尝试获取好友的当前用户列表时。) 声明如下: 我已成功使用,但如何使用我收到的用户令牌/密码?如本例所示,它只是这样表述: $tmhOAuth = new tmhOAuth(array( 'consumer_key' => 'YOUR_CONSUMER_KEY', 'consumer_secret' => 'YOUR_CONSUMER_SECRET

我正在为我的站点使用优秀的tmhOAuth php库。但是,我不知道如何访问从我的auth.php接收的用户令牌/密码?(例如,当尝试获取好友的当前用户列表时。)

声明如下:

我已成功使用,但如何使用我收到的用户令牌/密码?如本例所示,它只是这样表述:

$tmhOAuth = new tmhOAuth(array(
  'consumer_key' => 'YOUR_CONSUMER_KEY',
  'consumer_secret' => 'YOUR_CONSUMER_SECRET',
  'user_token' => 'A_USER_TOKEN',
  'user_secret' => 'A_USER_SECRET',
));
显然,硬编码对我来说不起作用,因此,简单地说,我想知道当前登录用户的令牌/密码在哪里

我想这是一个存储凭证的示例:

// already got some credentials stored?
} elseif ( isset($_SESSION['access_token']) ) {
  $tmhOAuth->config['user_token'] = $_SESSION['access_token']['oauth_token'];
  $tmhOAuth->config['user_secret'] = $_SESSION['access_token']['oauth_token_secret'];

  $code = $tmhOAuth->request('GET', $tmhOAuth->url('1/account/verify_credentials'));
  if ($code == 200) {
    $resp = json_decode($tmhOAuth->response['response']);
    echo $resp->screen_name;
  } else {
    outputError($tmhOAuth);
  }

用户应该通过oauth对您进行授权,这会给您每个用户一个访问令牌(您需要将其存储在某个地方),您从存储中获取该令牌,在请求中提供该令牌,并以这种方式授予您访问权。因此,您的用户需要授予您访问权限,您需要存储访问令牌+机密以备将来使用

简言之,不是非常具体,也不是100%的技术准确(我认为),但希望明确以下条款:

使用oauth,您可以请求应用程序范围内的令牌和密码,即消费者令牌和密码

使用这些消费者令牌,您可以向提供商请求请求令牌、secret(通常也是nonce令牌),现在可以将您的应用识别为“app x,这是我允许的,提供商”

使用此请求令牌,您可以向应用程序请求特定用户的访问令牌(您知道该用户是您这边的,并且他们知道或了解他们那边的),用户自己通常必须授权您的应用程序访问,并且在一切顺利时(意思是用户说OK)您将收到一个最终访问令牌和密码,从那时起,您可以使用该令牌和密码代表用户连接到远程站点。此时,您需要以某种方式物理存储令牌(数据库、文本文件等),以供以后使用

这是在他们的服务器和您的服务器之间来回切换,只要您为用户存储了有效的访问令牌+密码,就不需要重复第一步

一旦你有了这些,你就可以把它们和你的应用程序的消费者令牌/密码一起放在“用户令牌”和“用户密钥”中进行身份验证


我很抱歉,如果你已经知道这一切,这不是一个现成的答案。我的印象是,您还没有为其他用户提供访问令牌。

是的,大部分流量都由tmhOAuth负责(非常感谢)。但我很欣赏这部电影!但是,我想知道如何传递这个变量(我相信它已经存储在$\u SESSION中——请参见编辑!),因此,首先:如何将$\u SESSION变量传递到上述代码中?您可以用$\u SESSION['user\u token']替换“user\u token”,或者以任何方式调用该变量。秘密也一样。所以'user\u token'=>$\u SESSION['access\u token']['oauth\u token'],'user\u secret'=>$\u SESSION['access\u token']['oauth\u token\u secret']显然我试过了,但调试不好!谢谢harald!
// already got some credentials stored?
} elseif ( isset($_SESSION['access_token']) ) {
  $tmhOAuth->config['user_token'] = $_SESSION['access_token']['oauth_token'];
  $tmhOAuth->config['user_secret'] = $_SESSION['access_token']['oauth_token_secret'];

  $code = $tmhOAuth->request('GET', $tmhOAuth->url('1/account/verify_credentials'));
  if ($code == 200) {
    $resp = json_decode($tmhOAuth->response['response']);
    echo $resp->screen_name;
  } else {
    outputError($tmhOAuth);
  }