2012-06-08 53 views
2

我利用出色的tmhOAuth PHP库为我的网站。然而,我不能'弄清楚如何访问从我auth.php收到的用户令牌/秘密? (说,当试图获取当前用户的好友列表)如何使用我从tmhOAuth获得的用户令牌/密码?

它在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的,但如何利用用户令牌的/我收到的秘密?如示例,它只是说,像这样:

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

回答

2

用户都应该通过OAuth授权你,这相生你一个访问令牌,每个用户最终(你需要存储的地方),您从存储中获取该令牌,在请求中提供该令牌,并以这种方式授予您访问权限。因此,您的用户需要授予您访问权限,并且您需要存储访问令牌+秘密以供将来使用。

总之,不是很具体,也没有100%准确的技术(我认为),但希望明确遵循条款:

通过OAuth您请求的应用范围令牌和秘密,消费者令牌和秘密。

有了这些消费者令牌,您可以向提供商索要一个请求令牌,秘密(通常为Nonce令牌),现在可以将您的应用标识为'应用x',这是我允许的'提供商'。

有了这个请求令牌,你可以向应用程序请求一个特定用户的访问令牌(你知道哪个用户在你身边,他们知道或发现他们),用户通常必须授权你应用程序的访问,当一切顺利的话(这意味着用户说OK)收到最终的访问令牌和秘密与您从此可以对远程站点的连接,作用于代表用户。此时,您需要以某种方式物理存储令牌(数据库,文本文件...)以备后用。

这是他们的服务器和服务器,从来不需要,只要你有一个有效的访问令牌+秘密存储在用户再次重复了第一个步骤之间来回。

一旦你有了这些,你可以将它们放在'user_token'和'user_secret'中(毫无疑问,我从来没有使用过这个库)和你的应用程序的Consumer Token/Secret进行验证。

对不起,如果你知道这一切已经和它不是一个现成的适合的答案。这只是我的印象,您还没有为其他用户使用令牌。

+0

耶,大多数这种流动是由tmhOAuth(感激)照顾。但我欣赏破败!但是,我不知道如何传递变量(我已经存储在$ _SESSION我相信 - 看看编辑!)所以,首先:如何传递$ _SESSION变量到上面的代码? – knutole

+0

您可以用$ _SESSION ['user_token']替换'user_token',或者在您的结尾调用该变量。秘密一样。所以, 'user_token'=> $ _SESSION [ 'ACCESS_TOKEN'] [ '的oauth_token'], 'user_secret'=> $ _SESSION [ 'ACCESS_TOKEN'] [ 'oauth_token_secret'] –

+0

很显然,我试过了,但我有不好调试的情况下, !谢谢harald! – knutole

相关问题