Golang Gorilla CEX.IO Websocket身份验证错误

时间:2017-07-02 15:47:56

标签: go websocket gorilla

我目前正在尝试连接到CEX.IO比特币交易所的websocket。 Websocket连接没问题,但在验证时,我收到错误:Timestamp is not in 20sec range。我不知道这个错误是什么。

测试案例1& 2 for createSignature没问题(https://cex.io/websocket-api#authentication)。

身份验证Go代码:

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
}

1 个答案:

答案 0 :(得分:1)

错误消息告诉您时间戳距离当前时间超过20秒。

API预计时间以秒为单位,而不是纳秒。使用Unix以秒为单位获取时间。

     nonce := time.Now().Unix()

Unix时间是自1970年1月1日UTC以来的秒数。

如果此操作失败,请检查您的系统时间是否正确设置为秒。