使用现有的Access Token和Access Token Secret进行Oauth API调用

时间:2016-02-10 09:45:28

标签: php api oauth access-token

我正在使用Lusitanian PHP Oauth libraryhttps://github.com/Lusitanian/PHPoAuthLib)。

用户在我的应用程序中获得授权后,我收到了Access Token和Access Token Secret的值。现在有了这些值,我想对API进行经过身份验证的调用。如何使用Access Token,Access Token Secret的值以及Consumer Key和Consumer Secret的值进行调用?我不希望每次都获得用户授权,为他进行API调用。有没有人有想法?

我的要求是这样的:

  

$ result = json_decode($ service-> request('/ users / getDetails'),true   );

我尝试过Firefox的REST客户端和Chrome的高级REST客户端,它们只使用访问令牌,访问令牌密钥,消费者密钥和消费者密钥的值来成功执行OAuth调用。

同样,我想从我的PHP代码执行OAuth调用。我正在使用的库依赖于Session来存储这些值(这需要用户每次登录)并构建Authorization标头和签名。有没有办法可以手动构建签名和授权标题并进行OAuth调用?

1 个答案:

答案 0 :(得分:0)

最后,我调整了重用访问令牌的功能。 我将令牌存入其中后,我从配置php文件中获取令牌。

令牌也可以存储在本地PHP会话中并从中读取。

存储令牌的代码位于 Service / AbstractService.php

  

$ this-> storage-> storeAccessToken($ this-> service(),$ token);

您可以像下面这样修改它,将令牌存储在会话变量中:

if(!isset($_SESSION['access_token'])) {
        $token = new StdOAuth1Token();

        $token->setRequestToken($access_token);
        $token->setRequestTokenSecret($access_token_secret);
        $token->setAccessToken($access_token);
        $token->setAccessTokenSecret($access_token_secret);

        $token->setEndOfLife(StdOAuth1Token::EOL_NEVER_EXPIRES);
        $_SESSION['access_token'] = serialize($token);
}

然后,在向API发出请求时,您可以修改 request()函数中的代码,以使用会话中的令牌:

变化:

  

$ token = $ this-> storage-> retrieveAccessToken($ this-> service());

致:

  

$ token = unserialize($ _ SESSION ['access_token']);

这样,我可以使用自定义PHP会话来存储和检索访问令牌。您还可以使用数据库或文本文件来存储和检索令牌。有用!希望它对某人有用。