2016-05-11 12 views
1

片脚認証を使用してoauth 1.0a経由でサービスを認証するのに役立つライブラリを探しています。私はconsumerKey,consumerSecretresource urlしか持っていません。Golang片足/両足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 

私はGolangの多くのOAuthのライブラリを見てきました。

https://github.com/mrjones/oauthは、RequestTokenUrl,AccessTokenUrl,AuthorizeTokenUrlおよびcallback urlが必要です。

http://godoc.org/github.com/nhjk/oauthは、必要です。tokenKeytokenSecretなどconsumerKeyconsumerSecret

上記のphpやpythonの例と同じように簡単にサービスで認証できるライブラリがありますか?上記のライブラリのうちの1つを使用することができれば、誰かがコードスニペットの例を提供できますか?私が試してみると、無許可の返信が返ってくるだけです。

+0

、のようなもの? –

答えて

0

Golangはフレームワークのために異なるアプローチを持っています。なぜなら、その理由の1つは理由がないからです。レスポンスのヘッダーは標準のhttpパッケージで簡単に設定できます。あなたがそれを理解すると、他の言語フレームワークが実装しようとしているファーストクラスのオブジェクトを扱っていることに気づきます。

ライブラリを使用するよりも、HTTP要求をかなり構成するためではない、なぜこの機能を使用すると、 `curl`を働いているよう

func saveHandler(w http.ResponseWriter, r *http.Request) { 
    // allow cross domain AJAX requests 
    w.Header().Set("Access-Control-Allow-Origin", "*") 
}