2

我正在为我的网站使用出色的 tmhOAuth php 库。但是,我无法弄清楚如何访问从我的 auth.php 收到的用户令牌/秘密?(比如说,当试图获取当前用户的朋友列表时。)

它在示例中说明:

* Although this example uses your user token/secret, you can use
* the user token/secret of any user who has authorised your application.

我已经成功使用了auth.php 示例,但是如何使用我收到的 USER 令牌/秘密?与示例中一样,它只是这样陈述:

$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);
  }
4

1 回答 1

2

用户应该通过 oauth 向您授权,这最终会为每个用户生成一个访问令牌(您需要将其存储在某个地方),您从存储中获取该令牌,在请求中提供它,这样您就被授予访问权限。因此,您的用户需要授予您访问权限,并且您需要存储访问令牌+秘密以供将来使用。

简而言之,不是很具体,也不是 100% 在技术上准确(我认为),但希望清楚地遵循以下条款:

使用 oauth,您可以请求应用程序范围的令牌和机密、消费者令牌和机密。

使用这些消费者令牌,您可以向提供者请求请求令牌、秘密(通常也包括随机数令牌),现在可以将您的应用识别为“我允许的应用 x,提供者”。

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

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

一旦你有了这些,你可以毫无疑问地将它们与你的应用程序的消费者令牌/秘密一起放入'user_token'和'user_secret'(我从未使用过这个库)以进行身份​​验证。

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

于 2012-06-08T13:18:17.607 回答