javascript - Kraken 交易所期货 API - 生成身份验证字符串 - 身份验证错误。Node.js
问题描述
我正在尝试为私有端点生成签名消息。来自 Kraken Futures API 文档的步骤是:
- 连接 postData + nonce + endpointPath
- 使用 SHA-256 算法对步骤 1 的结果进行散列
- Base64 解码您的 api_secret
- 使用第 3 步的结果通过 HMAC-SHA-512 算法对第 2 步的结果进行哈希处理
- Base64 编码第 4 步的结果
这就是我所做的:
//Definition of arguments
const secret = 'SecretGeneratedByKraken...rEqyX3nPw3UURLCu/M'
var nonce = new Date() * 1000;
const path = 'https://futures.kraken.com/derivatives/api/v3/' + fills;
const signature = getMessageSignature(path,params,secret,nonce);
//Auth function
getMessageSignature = (path, params, secret, nonce) => {
var message = qs.stringify(params);
var concat = message + nonce + path; // 1
var hash = crypto.createHash('sha256');
var hash_digest = hash.update(concat).digest('binary'); // 2
var secret_decoded = Buffer.from(secret, 'base64'); // 3
var hmac = crypto.createHmac('sha512', hash_digest);
var hmac_digest = hmac.update(secret_decoded, 'binary').digest('base64'); //4 and 5
return hmac_digest;
}
仔细检查我是否传递了正确的论点,任何帮助将不胜感激。
解决方案
推荐阅读
- machine-learning - 计算成本低廉的图像分类器
- javascript - 如何打印多个订单的运输标签
- google-cloud-platform - 如何处理 Google Cloud Run 中的长请求?
- javascript - 无法在纸质列表框聚合物 3 中获取多选值
- reactjs - 如何使用我的 react 组件 PlaceInput 实现菜单输入框中的位置自动补全?
- c - 在链表的链表中插入元素
- java - 我如何与其他人分享 klov 报告?
- arrays - 比较 beanshell 中的 3 个数组并得到 1 个数组
- database-design - “仅当分区键受 EQ 或 IN 限制时,才支持 ORDER BY。” 卡桑德拉
- python-2.7 - 带有 unicode 路径的 Python 2.7 子进程