我对restAPI非常熟悉,但是这让我有些头疼。我正在尝试使用此文档https://developer.xero.com/documentation/oauth2/migrate将OAuth 1.0 token 迁移到OAuth 2.0 token 。
要求:
POST https://api.xero.com/oauth/migrate
Content-Type: application/json
Authorization: OAuth oauth_consumer_key="your_consumer_key", oauth_token="your_access_token",
oauth_signature_method="RSA-SHA1", oauth_signature="your_signature", oauth_timestamp="1456175435",
oauth_nonce="83fd12eb-f578-4403-bd55-247b66efa11a", oauth_version="1.0"
Body: {
"scope":"your_oauth_2_scopes + offline_access",
"client_id":"your_app_client_id",
"client_secret":"your_app_client_secret"
}
我正在尝试在GO中编写一个脚本,该脚本将发出POST请求,获取数据并更新我们的数据库。
现在,我很困惑的是授权 header 。
如何填写所需信息?
更具体地说,是oauth签名,oauth时间戳和oauth_nonce。我没有使用OAuth1.0a的经验,很想了解流程。
谢谢!
编辑:试图利用这个库https://godoc.org/github.com/gomodule/oauth1/oauth#example-Client-SetAuthorizationHeader
最佳答案
OAuth1.0a签名是一组用您的私钥签名的键值对。这个示例迁移应用程序应该使您了解构建签名所需采取的步骤,即使它不是Go:OAuth1.0a => OAuth 2 token migration example。
您还可以深入研究Xero GoLang SDK,以获取授权码:xerogolang
随机数是一个随机的一次性字符串,在标题和签名中必须相同。时间戳记是当前的日期时间,自纪元以来以秒为单位,并且 header 和签名中的日期也应相同。
关于rest - 如何设置OAuth1.0a的授权 header ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60061769/