如何解决coinbase api 总是 401 未经授权
自从按照建议生成 api 密钥以来,我已经忠实地等待了 48 多个小时,无论我做什么,每个 coinbase api 调用都会给出 401 Unauthorized
- 我已经检查了基本的非身份验证所需的调用,例如 /time 和 /exchange_rates,它们工作正常
- 我使用的是 coinbase 而不是 coinbase pro,所以这是一个简单的基于 API 密钥和标头的调用
- 三重检查了哈希和解码要求,没有任何明显的问题
与其要求从标准示例中解决编码问题,不如要求是
任何和所有帮助表示赞赏。 使用的参考资料: https://developers.coinbase.com/docs/wallet/api-key-authentication#
// Remove insecure protocols (SSL3,TLS 1.0,TLS 1.1)
ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3;
ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Tls;
ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Tls11;
// Add TLS 1.2
ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
HttpClient client = new HttpClient();
string sTimeStamp = Convert.ToInt64(DateTime.Now.Ticks).ToString("F0",CultureInfo.InvariantCulture);
client.BaseAddress = new Uri(sUrl + sOperation);
var convertedString = Convert.FromBase64String(sAPI_EXCHANGE_SECRET);
var prehash = sTimeStamp + "GET" + sOperation + ""; // no content for Now
string sSignature = HashString(prehash,convertedString);
// bunch of headers for coinbase
// Add an Accept header for JSON format.
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("User-Agent","CryptoAppClient"); // arbitrary user agent name
client.DefaultRequestHeaders.Add("CB-ACCESS-KEY",sAPI_EXCHANGE_KEY);
client.DefaultRequestHeaders.Add("CB-VERSION",sAPI_EXCHANGE_VERSION);
client.DefaultRequestHeaders.Add("CB-ACCESS-SIGN",sSignature);
client.DefaultRequestHeaders.Add("CB-ACCESS-TIMESTAMP",sTimeStamp);
// set up the actual call
HttpResponseMessage response = client.GetAsync("").Result;
.....
//----------------------------------------------------------------------------
private string HashString(string str,byte[] secret)
{
var bytes = System.Text.Encoding.UTF8.GetBytes(str);
using (var hmaccsha = new HMACSHA256(secret))
{
return Convert.ToBase64String(hmaccsha.ComputeHash(bytes));
}
}
解决方法
最后把它排序,结合错误的时间戳值和正确的.net函数来加密消息
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。