使用 oauth2 登录 coinbase api 时出现问题

问题描述 投票:0回答:1

我正在编写一个与 Coinbase API 集成的 Java Spring Web 应用程序。我在使用 OAuth2 登录时遇到问题。这些文档似乎并不完整,所以我遇到了一些问题。我一直在使用 https://docs.cdp.coinbase.com/sign-in-with-coinbase/docs/sign-in-with-coinbase-integration 作为我的指南。第一步是通过调用“/oauth2/token”请求访问。我的第一个问题是我收到了 403 Forbidden 错误,但我终于通过添加“User-Agent”和“CB-VERSION”标头(不在文档中)解决了这个问题。

现在我得到了一个 HTML 页面,我想我应该将其显示给用户,但我必须添加一个“base”元素才能使其中的链接正常工作。这让用户登录到 Coinbase,我以为这会导致调用我的回调,但事实并非如此。

顺便说一句,当我从本地主机工作时,我必须使用“urn:ietf:wg:oauth:2.0:oob”作为我的重定向 URI。

我该如何前进?

java oauth-2.0 coinbase-api
1个回答
0
投票

您误解了文档。首先,您必须将用户重定向到 coinbase 站点(将参数值替换为您注册的应用程序的参数值):

GET https://login.coinbase.com/oauth2/auth?response_type=code&client_id=1532c63424622b6e9c4654e7f97ed40194a1547e114ca1c682f44283f39dfa49&redirect_uri=https%3A%2F%2Fexample.com%2Foauth%2Fcallback&state=134ef5504a94&scope=wallet:user:read,wallet:accounts:read

然后 coinbase 将重定向到您通过参数

redirect_uri
给出的值(此处:
https://example.com/oauth/callback
)。在此重定向中,您将获得一个代码:

GET https://example.com/oauth/callback?code=4c666b5c0c0d9d3140f2e0776cbe245f3143011d82b7a2c2a590cc7e20b79ae8&state=134ef5504a94

然后您可以使用此代码登录:

curl https://login.coinbase.com/oauth2/token \
  -X POST \
  -d 'grant_type=authorization_code&code=4c666b5c0c0d9d3140f2e0776cbe245f3143011d82b7a2c2a590cc7e20b79ae8&client_id=1532c63424622b6e9c4654e7f97ed40194a1547e114ca1c682f44283f39dfa49&client_secret=3a21f08c585df35c14c0c43b832640b29a3a3a18e5c54d5401f08c87c8be0b20&redirect_uri=https://example.com/oauth/callback'

来自 coinbase 的响应包含您可以用于进一步请求的访问令牌。

© www.soinside.com 2019 - 2024. All rights reserved.