繁体   English   中英

Autodesk Forge Dataviz NPM 包 - 尝试使用 React Viewer

[英]Autodesk Forge Dataviz NPM Packages - Trying to use React Viewer

我一直在尝试使用新的 Forge Dataviz NPM 包进行开发,但我一直面临错误。 我目前只是试图加载一个查看器( https://forge.autodesk.com/en/docs/dataviz/v1/reference/UI/Viewer/ ),但我认为我做错了什么。 还是不知道是什么。

这是我的反应常量:

const TestAutodesk= () => {
  return (
    <div>
      <Viewer
      env="AutodeskProduction"
        docUrn="URN STRING"
        getToken={async () => await fetch("https://developer.api.autodesk.com/authentication/v1/authenticate",requestOptions)
            .then((res) => res.json())
            .then((data) => data.access_token)}
      ></Viewer>
    </div>
  );
};

这些是 requestOptions:

myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
var urlencoded = new URLSearchParams();
urlencoded.append("client_id", "ID");
urlencoded.append("client_secret", "SECRET");
urlencoded.append("grant_type", "client_credentials");

var requestOptions = {
  method: "POST",
  headers: myHeaders,
  body: urlencoded,
  redirect: "follow",
};

最终的应用程序不会将其用作身份验证,我将使用安全的后端端点,这只是为了尝试加载查看器并完成前端。 这是我在控制台上遇到的错误:

错误图片

我认为错误是调用 localhost:8080 但它应该调用 Autodesk 端点。 对此有任何想法吗? Api 参考/Dataviz 示例对此没有任何说明。

<Viewer> React 组件非常简单( https://github.com/Autodesk-Forge/forge-dataviz-iot-react-components/blob/main/client/components/Viewer.jsx ),本身不应该向本地主机发出任何请求。 您是否可能在应用程序的其他地方提出这些请求?

关于getToken实现,我建议两件事:

  • 直接从客户端代码发出这些请求不是一个好习惯。 这样,有人可能会窃取您的 Forge 客户端 ID 和客户端密码。 更好的方法是在您自己的后端实现一个自定义端点,该端点生成具有有限权限的令牌,对客户端隐藏凭据。
  • 如果您需要向https://developer.api.autodesk.com/authentication/v1/authenticate发出原始请求,请注意它需要 4 个(而不是 3 个)参数: client_idclient_secretgrant_typescopes

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM