2013-04-25 3 views
0

twitteroauth PHP 라이브러리를 실험하여 OAuth를 더 잘 이해하려고합니다.OAuth/Twitteroauth 라이브러리 및 인증 헤더

OAuth를 통해 인증하는 방법은 cUrl을 사용할 때 'Authorize'헤더를 사용하는 것입니다.

curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:')); 

그리고 실제로 설정되고있는 '권한 부여'헤더에 설정해야 매개 변수 : 그러나, twitteroauth 라이브러리의 소스를 검사, 나는 헤더가 포스트 요청에 대해 너무로 설정되어 있는지 볼 수 있습니다 게시물 본문 대신 줄 :

curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields); 

이렇게하는 이유는 무엇입니까? 클라이언트는 HTTP 서버 "이봐, 난 당신이 특정 방식으로 행동 기대"를 말할 헤더를 예상 추가 할 수 있습니다

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 

답변

0

: 트위터 API 가이드 라인에있을 때 헤더에 대한 다음과 같은 구현을 지정합니다. 웬일인지, 트위터의 구현은 당신이 아무것도 기대하지 않기를 바란다. 나는 내 자신의 집에서 구현 한 방법으로이 문제에 부딪쳤다. 트위터가이 머리글을 원하는 이유를 모르겠습니다.

POST 변수 또는 헤더에 자격 증명과 서명을 표시 할 수 있습니다. 둘 다 올바른 변수가 설정되어있는 한 계속 작동합니다 (oauth_consumer_key, oauth_nonce, oauth_signature, oauth_signature_method, oauth_timestamp 및 oauth_token).

요청 방법 (GET, POST, PUT 등)에 의존하지 않으므로 Authorization 헤더를보다 명확하게 설정합니다. 그러나 트위터는 두 경우 모두 완벽하게 처리합니다. 그것이 그들이 라이브러리에서 구현 한 방법이라면 그렇게 할 수 있습니다.