我想通過試用twitteroauth php庫來更好地理解OAuth。OAuth/Twitteroauth庫和授權標題
我的理解是,通過OAuth進行身份驗證的方式是在使用cUrl時使用「授權」標頭。然而,檢查了twitteroauth的庫源,我可以看到,頭被設置爲使POST請求:
curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:'));
而且實際上是在設定應在「授權」頭設置的參數帖子正文代替行:
curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
這樣做的原因是什麼?當Twitter的API準則是指定的標題下面的實現:
POST /1/statuses/update.json?include_entities=true HTTP/1.1
Accept: */*
Connection: close
User-Agent: OAuth gem v0.4.4
Content-Type: application/x-www-form-urlencoded
Authorization:
OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog",
oauth_nonce="kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg",
oauth_signature="tnnArxj06cWHq44gCs1OSKk%2FjLY%3D",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1318622958",
oauth_token="370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb",
oauth_version="1.0"
Content-Length: 76
Host: api.twitter.com
status=Hello%20Ladies%20%2b%20Gentlemen%2c%20a%20signed%20OAuth%20request%21