1

由于https://github.com/coinbase/gdax-node#the-authenticated-api-client

const key = 'your_api_key';
const b64secret = 'your_b64_secret';
const passphrase = 'your_passphrase';

const apiURI = 'https://api.gdax.com';
const sandboxURI = 'https://api-public.sandbox.gdax.com';

const authedClient = new Gdax.AuthenticatedClient(key, b64secret, passphrase, apiURI);

什么是 b64secret?我在哪里/如何得到它?它是 gdax 提供的字符串吗?我应该生成它吗?

我可以承认,对密码学知之甚少。

感谢您的帮助或有用的链接。

4

2 回答 2

3

来自GDAX 身份验证

在能够签署任何请求之前,您必须通过 GDAX 网站创建一个 API 密钥。... 创建密钥后,您将获得 3 条信息...:

密钥
密码
短语

Key 和Secret将由 GDAX 随机生成和提供;您将提供密码以进一步保护您的 API 访问。GDAX 存储密码的加盐哈希以供验证……</p>

Secret 是b64secret变量值。

于 2017-08-24T13:54:54.470 回答
0

你的 b64 秘密就是你的秘密。物有所值...

您可以使用gdax-java库来执行此操作(或其他语言中已经编写并从 gdax api 文档引用的任何变体)。

如果您打算编写自己的实现,可以使用以下方法对消息进行签名:

 private String signMessage(String timestamp, String method, String path) throws NoSuchAlgorithmException, InvalidKeyException {
        String prehash = timestamp + method + path;

        Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
        byte[] secretDecoded = Base64.getDecoder().decode(secret);
        SecretKeySpec secret_key = new SecretKeySpec(secretDecoded, "HmacSHA256");
        sha256_HMAC.init(secret_key);

        return Base64.getEncoder().encodeToString(sha256_HMAC.doFinal(prehash.getBytes()));
 }

确保您的时间正确,因为请求使用时间敏感签名进行签名。

于 2018-01-22T13:25:51.293 回答