BIM360 App Store:如何识别帐户ID

时间:2018-04-19 08:43:33

标签: javascript autodesk-forge autodesk-bim360

假设BIM360管理员已将BIM360 App Store中的BIM360应用程序添加到他/她的BIM360帐户,并完成了配置步骤。

之后,当用户点击“打开”链接(屏幕截图中显示的示例)时,我的应用中的页面将会打开。

在此页面中,我需要确定此特定BIM360帐户是否已在我的应用中拥有相应的帐户。

为了进一步澄清,我的应用程序是一个多租户云服务,每个租户/帐户都与BIM360帐户绑定 - 而不是与单个BIM360用户绑定。因此,无论登录BIM360页面的BIM360用户如何,我都需要将他/她重定向到与BIM360帐户对应的帐户。

如果我的应用中没有相应的帐户(首次访问就是这种情况),我必须将用户重定向到“注册”页面。

问题:当用户通过BIM360页面中的“打开”链接打开我的应用程序时,如何找到BIM360帐户ID?

一种可能的解决方法(实际上是黑客攻击)是在HTTP标头(在我的页面上)中使用'referrer'来获取BIM360页面的URL,并从中抓取帐户ID。

这样做的正确方法是什么?你能指点我一个示例代码吗?

由于 Sample page showing 'open' button

1 个答案:

答案 0 :(得分:0)

当最终用户打开您的应用时,您应该要求使用他/她的Autodesk帐户登录,这会产生一个三方OAuth访问令牌。

有了这个,您的应用可以调用GET Hubs,它会返回用户有权访问的中心列表,您的应用也可以访问。由于这包括所有中心,请检查attribute.extension.type == hubs:autodesk.bim360:Account,并且中心ID将是 BIM 360帐户。您还可以使用b.前缀检查中心ID。

请注意,Hub ID具有b.前缀,您需要将其删除才能获得正确的BIM 360帐户ID。

最后,访问您应用的最终用户可能会为您的应用配置多个BIM 360 Docs个中心,例如:与多个项目合作的承包商,请考虑这种情况。

检查this article以了解其他一些注意事项。

修改

发表评论(23/4/2018):

  

您建议的解决方法并没有真正解决问题。我需要一种方法来找出用户点击“打开”链接的页面的BIM360帐户ID。

用户点击“打开”后,您的应用需要请求登录,这会为您的应用提供3条腿令牌。使用它,调用GET Hubs端点,过滤BIM 360 Docs的集线器,如果有多个,请用户选择集线器/帐户,然后您拥有帐户ID。