2014-10-13 4 views
1

Я пытаюсь использовать OAuth в PHP для связи с внешним сервером. Это функция, отличная от сервера, не имеющая ничего общего с любым пользователем, поэтому все токены и секреты позаботятся о том, чтобы она просто извлекала защищенный ресурс, с которым мне приходится иметь дело. Это и прокси.Создайте запрос OAuth для использования с CURL в PHP

Я не могу понять, как направить PHP's OAuth через прокси-сервер, но у нас уже есть функция завитки (в нашем приложении Symfony2), которая имеет дело с ней надлежащим образом, поэтому я хотел бы просто использовать OAuth для генерации заголовка аутентификации и присоединения что к регулярному curl get/post/put. Я вижу функцию generateSignature, но я не уверен, как применить ее к заголовкам curl.

ответ

1

я обнаружил, что установка заголовков в CURL довольно легко

$oauth = new OAuth($this->consumerKey,$this->consumerSecret); 

$oauth->setToken($this->token,$this->tokenSecret); 
$url = $this->serviceUrl.'/locations/getlocations'; 
$nonce = mt_rand(); 
$timestamp = time(); 

$oauth->setTimestamp($timestamp); 
$oauth->setNonce($nonce); 

$sig = $oauth->generateSignature('GET',$url); 

$header = array 
(
    'Content-Type: '.$ct, 
    'Connection: keep-alive', 
    'Keep-Alive: 800000', 
    'Expect:' 
);  
$header[] = 'Authorization: OAuth '. 
      'oauth_consumer_key="'.$this->consumerKey.'"'. 
      ',oauth_signature_method="HMAC-SHA1"'. 
      ',oauth_nonce="'.$nonce.'"'. 
      ',oauth_timestamp="'.$timestamp.'"'. 
      ',oauth_version="1.0"'. 
      ',oauth_token="'.$this->token.'"'.      
      ',oauth_signature="'.urlencode($sig).'"' 
      ; 

А потом с CURL

curl_setopt($ch,CURLOPT_HTTPHEADER, header); 
+0

Im новой для PHP, что $ это указывающего, когда вы объявили переменную $ url = $ this-> serviceUrl. '/ locations/getlocations'; на самом деле, что означает это полное утверждение? Сохраняет ли текущее местоположение пути значение $ url? –

+0

Этот код был частью более крупного класса с частным свойством serviceUrl. Заявление, о котором вы спрашиваете, является конкатенацией строки в конец этого свойства и установкой переменной $ url в результат этого. – Craig

Смежные вопросы