我正在寻找一个库来帮助我通过oauth 1.0a使用单步认证来验证服务。我只有consumerKey
,consumerSecret
和resource url
。
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,要求:tokenKey
和tokenSecret
以及consumerKey
和consumerSecret
。
是否有一个我可以使用的库,这将允许我使用该服务进行身份验证,就像上面的php和python示例一样容易?如果我可以使用上面的库之一,有人可以提供代码片段示例吗?我尝试的任何东西都会返回未经授权的回复。
答案 0 :(得分:0)
Golang对框架有不同的理由,原因之一是,你不需要它们。您可以使用标准http包轻松设置响应的标头。当你掌握它时,你就会意识到你正在处理第一类对象,这正是那些其他语言框架试图实现的。
像这个功能
func saveHandler(w http.ResponseWriter, r *http.Request) {
// allow cross domain AJAX requests
w.Header().Set("Access-Control-Allow-Origin", "*")
}