2017-01-23 3 views
0

나는 서명 문제가있는 유일한 사람이 아니기 때문에 다른 게시물을 검색했습니다. 몇 가지 언어로 시도해 보았는데 항상 같은 문제가 있습니다.Coinbase.com 유효하지 않은 서명

나는 coinbase.com으로 API 인증을 잘못하고 있어요 무엇 : 또한 샌드 박스가 어떤이다 솔기없는

nonce := strconv.FormatInt(int64(time.Data.Epoch), 10) 
message := nonce + req.Method + endpoint // endpoint "/v2/accounts" 
req.Header.Set("CB-ACCESS-KEY", a.Key) 
h := hmac.New(sha256.New, []byte(a.Secret)) 
h.Write([]byte(message)) 

signature := hex.EncodeToString(h.Sum(nil)) 

req.Header.Set("CB-ACCESS-SIGN", signature) 
req.Header.Set("CB-ACCESS-TIMESTAMP", nonce) 
req.Header.Set("CB-VERSION", "2016-03-08") 

: 내가 좋아하는 뭔가를하려고 이동에

# normally I fetch the timestamp from https://api.coinbase.com/v2/time 
TIMESTAMP=$(date +%s) 
SIG=$(echo -n "${TIMESTAMP}GET/v2/accounts" | hmac256 --stdkey $COINBASE_SECRET) 

curl https://api.coinbase.com/v2/accounts \ 
    --header "CB-ACCESS-KEY: $COINBASE_KEY" \ 
    --header "CB-ACCESS-SIGN: $SIG" \ 
    --header "CB-ACCESS-TIMESTAMP: $TIMESTAMP" \ 
    --header "CB-VERSION: 2016-03-08" 

api.sandbox.coinbase.com는 더 이상 지원되지 않습니다!

종류 배쉬를 들어

+0

유닉스() 이상, [library] (https://developers.coinbase.com/docs/wallet/client-libraries)를 사용하십시오. – Mark

+0

@Mark 언급 된 golang 라이브러리는 구형입니다. 여전히 v1을 사용합니다. – zio

답변

0

에 관하여/문제가 내가 echo에 사용되는 HMAC 도구였다 말림. 컬 요청과 나를 위해 일한 태그 :

SIG=$(echo -n "${TIMESTAMP}GET/v2/accounts" | openssl dgst -sha256 -hmac "$COINBASE_SECRET" |cut -d' ' -f2); 

는 golang의 점에서 나는 해시 총액을 비교 뭔가 내가 사용하고있는 현재 라이브러리와 비린내 결론에 도달했다.

나는 내 자신의 라이브러리 (https://github.com/Zauberstuhl/go-coinbase)를 작성했으며 이제는 매력처럼 작동합니다. 최종 인코딩에 Sprintf을 사용하고 있다는 점을 제외하고는 위와 같이하고 있습니다.하지만 동일해야합니다.

어쨌든 고마워!

관련 문제