Golang Gorilla CEX.IO Websocket 认证错误
Golang Gorilla CEX.IO Websocket authentication error
我目前正在尝试连接到 CEX.IO 比特币交易所的 websocket。
Websocket 连接正常,但在验证时,出现错误:Timestamp is not in 20sec range
。我不知道这是什么错误。
createSignature 的测试用例 1 和 2 正常 (https://cex.io/websocket-api#authentication)。
验证码:
func toHmac256(message string, secret string) string {
key := []byte(secret)
h := hmac.New(sha256.New, key)
h.Write([]byte(message))
return strings.ToUpper(hex.EncodeToString(h.Sum(nil)))
}
func Signature() (string, string) {
nonce := time.Now().Unix() // Edit with Cerise Limón answer
message := strconv.FormatInt(nonce, 10) + "API-KEY"
signature := api.toHmac256(message, "SECRET-KEY")
return signature, nonce
}
错误消息告诉您时间戳距离当前时间超过 20 秒。
API 期望时间以秒为单位,而不是纳秒。使用 Unix 获取以秒为单位的时间。
nonce := time.Now().Unix()
Unix 时间是自 1970 年 1 月 1 日 UTC 以来的秒数。
如果失败,请检查您的系统时间是否正确设置为秒。
我目前正在尝试连接到 CEX.IO 比特币交易所的 websocket。
Websocket 连接正常,但在验证时,出现错误:Timestamp is not in 20sec range
。我不知道这是什么错误。
createSignature 的测试用例 1 和 2 正常 (https://cex.io/websocket-api#authentication)。
验证码:
func toHmac256(message string, secret string) string {
key := []byte(secret)
h := hmac.New(sha256.New, key)
h.Write([]byte(message))
return strings.ToUpper(hex.EncodeToString(h.Sum(nil)))
}
func Signature() (string, string) {
nonce := time.Now().Unix() // Edit with Cerise Limón answer
message := strconv.FormatInt(nonce, 10) + "API-KEY"
signature := api.toHmac256(message, "SECRET-KEY")
return signature, nonce
}
错误消息告诉您时间戳距离当前时间超过 20 秒。
API 期望时间以秒为单位,而不是纳秒。使用 Unix 获取以秒为单位的时间。
nonce := time.Now().Unix()
Unix 时间是自 1970 年 1 月 1 日 UTC 以来的秒数。
如果失败,请检查您的系统时间是否正确设置为秒。