首页 > 解决方案 > 为什么 API 密钥身份验证在使用 Crypto-JS 的 Coinbase Pro 上不起作用?

问题描述

我真的在努力使用 React Native 中的 Crypto-JS 库与 Coinbase Pro 一起使用 API 密钥身份验证。

我已按照此处的说明进行操作: https ://docs.pro.coinbase.com/#authentication

import axios from 'axios';
import { Buffer } from 'buffer';
import CryptoJS from 'crypto-js';

export const baseURL = 'https://api.pro.coinbase.com';
export const axiosTimeout = 10 * 1000; // 10 sec

export const addHeaders = (additional) => {
  const headers = {};
  return Object.assign(
    headers,
    {
      Accept: 'application/json',
      'User-Agent': 'rn-coinbasepro-app',
      'Content-Type': 'application/json'
    },
   additional
  );
};

componentDidMount() {
  const auth = {
    key: '',
    secret: '',
    passphrase: ''
  };

  const method = 'GET';
  const url = `${baseURL}/orders?status=all`;
  const timestamp = Date.now() / 1000;
  const requestPath = '/orders?status=all'
  const what = timestamp + method + requestPath;
  const key = Buffer.from(auth.secret, 'base64').toString('ascii');
  const hmac = CryptoJS.HmacSHA256(what, key);
  const signature = CryptoJS.enc.Base64.stringify(hmac);

  axios.interceptors.request.use((request) => {
    console.log('Starting Request', request);
    return request;
  });

  axios.interceptors.response.use((response) => {
    console.log('Response:', response);
    return response;
  });

  axios
    .get(url, {
      timeout: axiosTimeout,
      headers: addHeaders({
        method,
        timeout: axiosTimeout,
        'CB-ACCESS-KEY': auth.key,
        'CB-ACCESS-SIGN': signature,
        'CB-ACCESS-TIMESTAMP': timestamp,
        'CB-ACCESS-PASSPHRASE': auth.passphrase
      }),
      debug: true
    })
    .then((response) => {
      console.log(response);
      if (response.status === 200) {
        console.log(response.data);
      } else {
        console.log(response);
      }
    })
    .catch((error) => {
      console.log(error);
    });
}

它不断返回 401(未经授权 - 无效的 API 密钥)

我已按照说明进行操作,并且我认为我已经正确完成了所有操作。我只是看不出有什么问题,并且 Coinbase Pro API 返回很少解释原因。

标签: react-nativecryptojsapi-keycoinbase-apigdax-api

解决方案


推荐阅读