Coinbase Pro 和沙盒登录端点

Coinbase Pro and Sandbox Login Endpoints

我正在使用 Spring 5 和 Java 8 创建一个应用程序来使用 Coinbase Pro 为我自己和他人进行交易。我有一个 coinbase.properties 文件,它具有以下属性:

authorize.url=https://www.coinbase.com/oauth/authorize
access.url=http://www.coinbase.com/oauth/token
token.url=https://api.coinbase.com/oauth/token
current.user.url=https://api.coinbase.com/v2/user

我可以调用Coinbase的授权页面,用户允许授权。授权后,它返回到我的回调页面,其中包含代码和我最初发送的状态。我可以使用该代码生成 access_token 和 refresh_token。我将 refresh_token 保存在数据库中,因为我知道 access_token 只能使用 2 小时,如果我想再次做某事,我可以使用 refresh_token 获得新的 access_token 和新的 refresh_token ...都很好。

因此,如您所见,我正在使用 Oauth2 向 Coinbase 进行身份验证。我可以使用 user.url 获取有关传入用户 ID 的用户的信息。当然我还要传入access_token:

 header:  Authorization:  Bearer {access_token}

所以,第一个问题是……我可以使用 Coinbase Pro 的 OAuth 机制和 Coinbase Pro 沙盒为自己和他人进行交易吗???查找 Coinbase Pro 时,我只看到 REST API link:

https://api.pro.coinbase.com      (not interested in the FIX link)

我想我必须将属性更改为:

authorize.url=https://www.coinbase.com/oauth/authorize
access.url=http://www.coinbase.com/oauth/token
token.url=https://api.pro.coinbase.com/oauth/token
current.user.url=https://api.pro.coinbase.com/v2/user
order.url=https://api.pro.coinbase.com/orders

/orders 的 Coinbase Pro REST API 文档讨论了 API 密钥和消息签名。但如果我只是为自己进行交易,那看起来就像是。如果我正在为其他人进行交易,那么我正在使用 Oauth2,这绝对是正确的选择。

我正在测试 sell/trade 订单的功能,我可以为此使用 Sandbox。 沙箱有点不同,我们有一个基本端点和 REST api 端点:

# https://public.sandbox.pro.coinbase.com/
# https://api-public.sandbox.pro.coinbase.com

在这种情况下,如果我使用 Oauth2 进行身份验证,我希望得到以下结果:

authorize.url=https://public.sandbox.pro.coinbase.com/oauth/authorize
access.url=https://public.sandbox.pro.coinbase.com/oauth/token
token.url=https://api-public.sandbox.pro.coinbase.com/oauth/token
current.user.url=https://api-public.sandbox.pro.coinbase.com/v2/user
order.url=https://api-public.sandbox.pro.coinbase.com/orders

通过这种方式,我在 Coinbase Pro 沙箱中使用 Oauth2 身份验证这样我就可以使用 access_token 为自己和他人进行交易。我正在查看 Coinbase Pro 的文档,以及有关下订单的信息。我假设我还需要为 "Authentication" Bearer {access_token}

添加 header

如果这一切都是正确的,那么我已经上路了。我只是想验证我走在正确的道路上,如果我没有,那么任何帮助都会非常有用。当然,如果我不能使用 Oauth2 身份验证为自己和他人使用 Coinbase Pro 进行交易,那么我需要调查一下。

谢谢!

经过大量研究 "trial and error," 我发现 Coinbase(标准)使用 Oauth2,这意味着我们可以使用这种安全机制为他人进行交易。但是,每笔交易的成本更高,而且您无法从 Coinbase Pro 获得交易详情。

Coinbase Pro 在技术上与任何网站所说的完全不同。 Coinbase Pro 不以任何方式、形状或形式使用 Oauth2。它没有允许某人代表其他人进行交易的机制。它使用一个 API 密钥,它允许你创建一个密码,你有一个秘密密钥和一个 Public 密钥,你可以用它来创建机器人来为你和你一个人进行交易。

这意味着任何网站,如 CryptoHopper,都会强制您将 API 关键秘密信息输入到他们的网站,这绝对是个坏主意。因为用户将他们的密钥输入该系统,所以 CryptoHopper 可以使用这些密钥为您进行交易。但是,安全性是一个大问题。我希望 CryptoHopper 会对该数据进行双重加密,以防他们的数据受到损害。

这回答了我的问题,即 Coinbase 有一堆标准的 Oauth2 REST API 可以确保使用访问和刷新令牌进行交易的安全性。

Coinbase Pro 有自己的 REST 端点:https://api.pro.coinbase.com 您登录到 Coinbase Pro,您可以在那里创建您的 API 密钥。

Coinbase Pro SANDBOX 有自己的 REST 端点:
https://api-public.sandbox.pro.coinbase.com

网站是:https://public.sandbox.pro.coinbase.com 一旦你登录到这个网站,你可以看到有虚拟银行账户,你可以创建 "sandbox" API 密钥,这样你就可以针对这个虚拟系统进行交易。

我的错误是 Coinbase Pro,无论是否是沙盒,都与 Oauth2 有任何关系。

希望这对其他人有帮助。