【问题标题】:Forge Autodesk - 2 legged OAuthForge Autodesk - 2 腿 OAuth
【发布时间】:2020-03-20 13:43:59
【问题描述】:

我们收到客户的询问,希望从我们的应用程序中启用 Autodesk 模型查看器。第一步是实现OAuth2身份验证(2条腿)。我遵循了 Forge Autodesk 教程,但这对我来说是全新的,我无法将其配置为工作。我从我们的应用程序发出http 请求(使用jQuery),传递client_idclient_secret、grant_type 和一个范围。查看开发人员菜单 (F12) - 我可以看到请求正在访问他们的服务器并返回 access_token、过期时间、授权“Bearer”,状态为 200。到目前为止,一切都很好。

我知道现在我需要回调 API 并传递我收到的这个 access_token。这是我丢失的地方:控制台向我显示错误,Cross origin ...并且http请求的成功部分没有触发(在http请求成功部分我试图将用户重定向到我们刚刚收到的模型查看器url + access_token )。但它永远不会着火。正在挖掘论坛和教程,但找不到任何好的示例或解释我做错了什么。下面是我的代码示例

$.post("https://developer.api.autodesk.com/authentication/v1/authenticate", 
     {
      client_id: 'here_is_a_client_id',
      client_secret: 'here_is_a_client_secret',
      grant_type: 'client_credentials',
      scope: 'viewables:read'
    },
   function(data, status){
    console.log("Data: " + data);
window.location.href = 'https://viewer.autodesk.com/id/here_is_a_long_id_number&Authorization=Bearer&' + data;

});

高度赞赏任何帮助。此外,我尝试使用 Node.js 来遵循 Autodesk 教程,但同样,在看到 access_token 从他们的服务器返回后,无法进行回调并将此 access_token 附加到它。所有这些Authorization/Authentication/Tokens 的新手,所以无法弄清楚它的工作方式。提前致谢。

【问题讨论】:

    标签: oauth-2.0 autodesk-forge autodesk-viewer autodesk


    【解决方案1】:

    我可以建议您如何避免此跨域错误,但在客户端授权您的应用程序至关重要,而且非常危险。公开您的客户端密钥将使每个人都有权访问您的帐户并代表您使用云积分。并访问您的所有内容。这就是您不应该采用这种方法的原因。

    您不应该公开客户端密码,也不应该公开客户端上的读/写范围访问令牌,这些都应该驻留在服务器上,并且仅限于服务器上。您最终可以在客户端上看到的唯一访问令牌应该是 viewables:read 范围内的令牌。即使使用 viewables:read 令牌,我自己也更喜欢使用代理 (see here)。

    【讨论】:

    • 感谢 cyrille 您的 cmets,您所说的确实有道理。但是现在,我只是想让它工作并传递这个 2-legged Auth 东西,所以我实际上可以看到接收到的 access_token,然后将用户重定向到传递这个 access_token 的模型查看器页面,所以用户不要必须输入他/她的用户名和密码。而且我现在不能,在我收到 access_token 之后,我如何回调到 Autodesk 模型查看器页面并传递这个令牌(我的代码的 http 成功部分不起作用),有什么线索吗?感谢您的回复。
    • 如果不使用 Chrome 扩展程序,例如“Allow-Control-Allow-Origin: *”或“Moesif Orign & CORS Changer”,您将无法通过客户端脚本获取 Forge 令牌;如果没有这些扩展,此代码将引发 CORS 错误。这是设计使然。最好使用this basic sample 并实例化您自己的查看器。我想重申一下,您在保护您的帐户方面尝试做的是一个非常糟糕的主意,这样做意味着将您的房屋钥匙交给任何人,包括小偷。
    • 我遵循了本教程,但最终没有工作副本。我要做的是创建简单的 2-legged 身份验证过程,其中只有 2-legged Auth(我相信发布和获取请求)并成功将用户重定向到 Forge 中我们现有的应用程序(模型查看器页面)欧特克。我是 Node.js 的新手,我正在努力实现一个最简单的身份验证并显示模型查看器页面,没有任何花哨的上传、翻译等。希望它确实有意义,如果你能指出一些好的例如,它会非常感激。谢谢
    • 教程有效,您也可以尝试models.autodesk.io - 所有示例都发布在github.com/Autodesk-Forge - 如果您愿意,我们可以进行远程会话,我可以向您展示 - 给我发电子邮件 cyrille at autodesk .com,我们将连接。
    猜你喜欢
    • 2019-12-27
    • 2019-08-09
    • 1970-01-01
    • 2021-07-03
    • 2021-09-25
    • 2021-05-27
    • 2019-02-19
    • 2020-06-13
    • 2020-12-23
    相关资源
    最近更新 更多