【发布时间】:2020-03-21 02:11:43
【问题描述】:
所以,我正在创建一个与 coinbase 一起使用的 Web 应用程序。前端是一个标准的静态页面,带有 html 和 jquery,这很普通。后端是一个使用 Spring 5 制作的单独的 Web 应用程序,并具有一堆 RESTful Web 服务。
我转到我的 login.html 并登录。这意味着我将用户名/密码发送回我的登录 Spring Controller,然后我会收到一个发送回 UI 的访问令牌。我把它放在一个 cookie 中,然后我重新加载了一个新页面,该页面上有一个大的授权按钮。
该按钮对传递令牌的 Spring RESTful 控制器进行 AJAX 调用,因为我想让该端点安全,这很好用。
在后端(或中间件)上,我正在对 Coinbase 进行 RESTful 调用以启动 Oauth2 身份验证过程。我从属性文件中读取了我的客户端 ID,我传入了 redirectURI 和一个状态。所有这一切都很好,它到达了 coinbase,并且响应是 HTML。我把它传回给我的客户端,前端,我有这个 HTML,它是 coinbase 授权页面。
现在这里是冒险的地方......我是一个后端人员,所以我可以毫无问题地在后端进行 RESTful 调用。我得到了 HTML,它应该是 AUTHORIZE 页面,以允许用户让我的网络应用程序与他们的 coinbase 帐户一起使用。我得到了 HTML,现在我不知道在我的页面或新页面上显示这个 html 的正确方法。这是我缺乏javascript和jquery知识。
我的 authorize.js 中的 AJAX 代码如下所示:
$.ajax({
url : 'http://localhost:8080/myapp-be/api/coinbase/authorization',
headers : {'mytoken' : mytoken},
dataType: 'html',
cache: false,
success: function(response) {
$("html").html(response);
}
});
这是正确的方法吗?
我绝对可以将coinbase调用放在我的浏览器中,它很容易弹出Coinbase授权对话框。如果我授权,输入我的用户名/密码,我会被发送到我作为回调重定向 uri 传入的回调页面。
但是,据我了解,我们不想将客户端 ID 暴露给任何人。这就是我的后端这样做的原因,我们只返回 HTML。所以,我在这里受阻。 使用我当前的代码,我得到了许多 Javascript 错误,我只知道这不是要走的路。我遇到了很多 CORS 问题,当我尝试授权时,我收到一个错误,它无法访问正确的页面。
如何正确调用 Coinbase 授权 API。他们的文档页面: https://developers.coinbase.com/docs/wallet/coinbase-connect/integrating 显示在第 1 步:
GET
https://www.coinbase.com/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URL&state=SECURE_RANDOM&scope=wallet:accounts:read
所以,很遗憾,我对解决这个问题的最佳方法有点困惑。 要么我从暴露客户端 ID 的客户端发出这个 GET 调用,如果可以的话? 或者,我可以找出正确的方式来显示返回到 Coinbase 授权页面的 HTML?
感谢您的帮助!
【问题讨论】:
标签: javascript jquery spring coinbase-api