我正在使用Lusitanian PHP Oauth library(https://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调用?
答案 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会话来存储和检索访问令牌。您还可以使用数据库或文本文件来存储和检索令牌。有用!希望它对某人有用。