2016-02-10 87 views
0

我正在使用Lusitanian PHP Oauth libraryhttps://github.com/Lusitanian/PHPoAuthLib)。使用現有訪問令牌和訪問令牌祕密進行Oauth API調用

當用戶在我的應用程序中獲得授權後,我收到了Access Token和Access Token Secret的值。現在有了這些值,我想對API進行認證調用。我如何使用訪問令牌,訪問令牌密鑰的值以及消費者密鑰和消費者密鑰的值進行調用?我不想讓用戶每次都獲得授權,爲他進行API調用。有人有想法嗎?

我的請求是這樣的:

$結果= json_decode($服務 - >請求( '/用戶/ getDetails'),真 );

我已經嘗試過使用Access Token,Access Token Secret,Consumer Key和Consumer Secret的值來成功執行OAuth調用的Firefox的Firefox REST客戶端和高級REST客戶端。

同樣,我想從我的PHP代碼執行OAuth調用。我正在使用的庫取決於Session來存儲這些值(這要求用戶每次登錄)並構建Authorization標頭和簽名。有沒有一種方法可以手動構建簽名和授權標頭,並進行OAuth調用?

+0

我使用的OAuth服務與Twitter OAuth(1.0)幾乎相似, –

回答

0

最後,我調整了重用訪問令牌的功能。 我從配置php文件中獲取令牌後,我存儲令牌。

令牌還可以存儲在本地PHP會話中並從中讀取。

用於存儲令牌的代碼是在服務/ AbstractService.php

$這 - >存儲 - > storeAccessToken($這 - >服務(),$令牌);

你可以修改它像下面,存儲在會話變量令牌:

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的請求時,你可以修改請求的代碼()功能使用令牌從您的會話:

變化:

$令牌= $這個 - >存儲 - > retrieveAccessTo肯($這 - >服務());

到:

$令牌=反序列化($ _ SESSION [ 'ACCESS_TOKEN']);

這樣,我可以使用自定義PHP會話來存儲和檢索訪問令牌。您還可以使用數據庫或文本文件來存儲和檢索令牌。有用!希望這對某個人有用。

相關問題