Ошибка генератора сигнатур - PullRequest
1 голос
/ 20 февраля 2020

Я использую php cURL, чтобы ПОСТАВИТЬ некоторую информацию (тип авторизации: Oauth 1.0), моя проблема в том, чтобы сгенерировать уникальную подпись с использованием consumer_secret и access_token и закодированным URL, а также '&', я попытался использовать два методы для его генерации, но ответ cURL: подпись недействительна. Проверьте и попробуйте снова.

это мой последний метод генерации подписи:

// ------------- START GENERATE SIGNATURE -------------
    $oauth = array(
        "OAuth oauth_consumer_key=".$this->consumer_key.",
              oauth_token=".$this->access_token.",
              oauth_signature_method=".$this->signature_method.",
              oauth_timestamp=".$timestimp.",
              oauth_nonce=".$nonce.",
              oauth_version=".$this->version.""
    );
    $base_info = $this->buildBaseString($this->url, 'PUT', $oauth) .'&';
    $composite_key = rawurlencode($this->consumer_secret) . '&' . rawurlencode($this->access_token);
    $oauth_signature = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true));
    // ------------- END GENERATE SIGNATURE -------------

и это функция buildBaseString

function buildBaseString($baseURI, $method, $params)
{
    $r = array();
    ksort($params);
    foreach($params as $key=>$value){
        $r[] = "$key=" . rawurlencode($value);
    }
    return $method."&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r));
}

Мне нужна помощь, пожалуйста. спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...