0
我試圖建立一個有效的簽名密鑰(我使用的是HMAC-SHA1方式),至今這仍是無效的(我使用一個在線測試服務器在http://term.ie/oauth/example/client.php):PHP Oauth構建簽名密鑰?
function _build_signature_hmac($base_url, $params, $consumer_key, $token_secret = '')
{
// Setup base-signature data
$data = 'POST&' . $base_url . '&';
// Sort the params array keys first
ksort($params);
// Attach params string
$data .= rawurlencode(http_build_query($params));
// Build the signature key
$key = rawurlencode($consumer_key) . '&' . rawurlencode($token_secret);
return base64_encode(hash_hmac('sha1', $data, $key));
}
由於這是對未授權令牌的請求,因此$ token_secret字符串爲空。 返回的簽名是這樣的:
POST&http://term.ie/oauth/example/request_token.php&oauth_consumer_key%3Dkey%26oauth_nonce%3D0uPOn3pPUbPlzWx2cO6citRPafIni5%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1298745681%26oauth_version%3D1.0
而且$關鍵是這樣的:secret&
的關鍵/機密是正確的,我從服務器獲取一個響應說「無效的簽名」 。我是以正確的方式建設嗎?
我建議邏輯分隔條件首先在它自己的步驟來創建簽名基本字符串,所以你可以使用一些測試頁面,比如http://developer.netflix.com/resources/OAuthTest在你進入簽名創建之前驗證你的基本字符串是否正確。 –
感謝您的鏈接。 NetFlix Oauth服務器也報告無效簽名,所以我認爲可以肯定地認爲我的簽名有問題。 –