【问题标题】:BIM360 App Store: How to recognize Account IDBIM360 App Store:如何识别账户ID
【发布时间】:2018-09-29 16:34:24
【问题描述】:

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

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

在这个页面中,我需要确定这个特定的 BIM360 帐户在我的应用程序中是否已经有相应的帐户。

为了进一步澄清,我的应用程序是一个多租户云服务,每个租户/帐户都与一个 BIM360 帐户相关联,而不是与单个 BIM360 用户相关联。所以,无论是登录BIM360页面的BIM360用户,我都需要将他/她重定向到BIM360账号对应的账号。

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

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

一种可能的解决方法(实际上是 hack)是在 HTTP 标头(在我的页面上)中使用“referrer”来获取 BIM360 页面的 URL,并从中刮取帐户 ID。

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

谢谢

【问题讨论】:

    标签: javascript autodesk-forge autodesk-bim360


    【解决方案1】:

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

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

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

    最后,使用您的应用的最终用户可能会为您的应用配置多个 BIM 360 Docs 集线器,例如与多个项目合作的承包商,因此请考虑这种情况。

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

    编辑

    来自评论(2018 年 4 月 23 日):

    您建议的解决方法并不能真正解决问题。我需要一种方法来确定用户单击“打开”链接的页面的 BIM360 帐户 ID。

    用户点击“打开”后,您的应用需要请求登录,这会为您的应用提供一个三足令牌。这样,调用 GET Hubs 端点,过滤 BIM 360 Docs 的中心,如果有多个,请用户选择中心/帐户,然后您就有帐户 ID。

    【讨论】:

    • 谢谢@Augusto。我会试试这个。
    • 我们能否在单个 Autodesk 用户不会与多个 BIM360 帐户关联的假设下进行操作?这很重要,因为当用户从 B2 BIM360 帐户页面单击“打开”按钮时,我们不想显示属于 B1 BIM360 帐户的应用程序内容。
    • 不,一个 Autodesk 用户可以关联 0、1、2 个或更多 BIM 360 帐户。
    • 因此,您建议的解决方法并不能真正解决问题。我需要一种方法来确定用户单击“打开”链接的页面的 BIM360 帐户 ID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多