【问题标题】:How to use the user token/secret that I got from tmhOAuth?如何使用我从 tmhOAuth 获得的用户令牌/秘密?
【发布时间】:2012-06-08 21:29:46
【问题描述】:

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

the example中说明:

* 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 example,但如何使用我收到的 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);
  }

【问题讨论】:

    标签: php twitter oauth


    【解决方案1】:

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

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

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

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

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

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

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

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

    【讨论】:

    • 是的,大部分流程都由 tmhOAuth 处理(非常感谢)。但我很欣赏这个破败!但是,我想知道如何传递变量(我相信它已经存储在 $_SESSION 中 - 请参阅编辑!)所以,首先:如何将 $_SESSION 变量传递到上面的代码中?
    • 您可以将 'user_token' 替换为 $_SESSION['user_token'] 或者在您的端调用该变量。秘密也一样。所以'user_token' => $_SESSION['access_token']['oauth_token'], 'user_secret' => $_SESSION['access_token']['oauth_token_secret']
    • 显然我试过了,但我有一个调试错误的案例!谢谢哈拉德!
    猜你喜欢
    • 2012-04-28
    • 2019-02-11
    • 2013-01-23
    • 2015-10-21
    • 2015-06-06
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多