Я ищу библиотеку, которая поможет мне пройти аутентификацию с помощью службы через oauth 1.0a с помощью односторонней аутентификации. У меня есть только consumerKey
, consumerSecret
и resource url
.Golang one-legged/two-legged oauth 1.0a аутентификация
Примеры доступны в curl, PHP и Python. Я пытаюсь пройти аутентификацию с помощью GoLang.
curl
-X GET
-H "Content-Type: application/json"
-H 'Authorization: OAuth realm="https://example.com",oauth_consumer_key="1234-5678-91011",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1424789327",oauth_nonce="abcde",oauth_version="1.0",oauth_signature="3iwWBq%2FHaBcDl9Q1o%2BjAc%2BKz8J%2FE%3D"'
https://example.com
PHP
require 'vendor/autoload.php';
use Guzzle\Http\Client;
use Guzzle\Plugin\Oauth\OauthPlugin;
$client = new Client('https://example.com');
$oauth = new OauthPlugin(array(
'consumer_key' => '1234-5648-9101',
'consumer_secret' => 'abcde',
));
$client->addSubscriber($oauth);
$response = $client->get('/')->send();
echo $response->getBody();
Python
from requests_oauthlib import OAuth1Session
key = '1234-5648-9101'
secret = 'abcde'
example = OAuth1Session(key, client_secret=secret)
url = 'https://example.com'
r = example.get(url)
print r._content
Я посмотрел на многих библиотек OAuth в Golang.
https://github.com/mrjones/oauth, требует: RequestTokenUrl
, AccessTokenUrl
, AuthorizeTokenUrl
и callback url
.
http://godoc.org/github.com/nhjk/oauth, требует: а tokenKey
и tokenSecret
, а также consumerKey
и consumerSecret
.
Есть ли библиотека, которую я могу использовать, которая позволит мне аутентифицироваться с помощью этой службы так же легко, как и примеры php и python выше? Если я могу использовать одну из вышеперечисленных библиотек, может ли кто-нибудь предоставить пример фрагмента кода? Все, что я пытаюсь, просто возвращает несанкционированные ответы.
как вы обработанный 'curl', почему бы не составить запрос HTTP, а не с использованием библиотеки? –