Магазин приложений BIM360: Как узнать идентификатор учетной записи
Допустим, администратор BIM360 добавил мое приложение BIM360 из магазина приложений BIM360 в свою учетную запись BIM360 и прошел все этапы подготовки.
После этого, когда пользователь нажимает ссылку "Открыть" (пример показан на скриншоте), открывается страница из моего приложения.
На этой странице мне нужно определить, есть ли у этой конкретной учетной записи BIM360 соответствующая учетная запись в моем приложении или нет.
Чтобы уточнить, мое приложение является мультитенантной облачной службой, и каждый арендатор / учетная запись связана с учетной записью BIM360, а не с отдельными пользователями BIM360. Поэтому, независимо от пользователя BIM360, который вошел на страницу BIM360, мне нужно перенаправить его / ее на учетную запись, соответствующую учетной записи BIM360.
Если в моем приложении нет соответствующей учетной записи (которая будет иметь место для первого доступа), я должен перенаправить пользователя на страницу "Зарегистрироваться".
Вопрос: как найти идентификатор учетной записи BIM360, когда пользователь открывает мое приложение по ссылке "Открыть" на странице BIM360?
Один из возможных обходных путей (на самом деле, взлом) - использовать "referrer" в заголовке HTTP (на моей странице), чтобы получить URL-адрес страницы BIM360 и вычеркнуть из него идентификатор учетной записи.
Как правильно это сделать? Не могли бы вы указать мне пример кода?
1 ответ
Когда конечный пользователь открывает ваше приложение, вы должны попросить войти с его / ее учетной записью Autodesk, что приводит к получению трехстороннего токена доступа OAuth.
При этом ваше приложение может вызывать GET Hubs, который возвращает список концентраторов, к которым у пользователя есть доступ, и у вашего приложения также есть доступ. Поскольку это включает в себя все концентраторы, проверьте attribute.extension.type
== hubs:autodesk.bim360:Account
и идентификатором концентратора будет учетная запись BIM 360. Вы также можете проверить идентификатор концентратора с помощью b.
префикс.
Обратите внимание, что идентификатор Hub имеет b.
префикс, и вам нужно удалить его, чтобы получить правильный идентификатор учетной записи BIM 360.
Наконец, конечный пользователь, который приходит в ваше приложение, может иметь несколько BIM 360 Docs
концентраторы, предоставляемые вашему приложению, например, подрядчик, который работает с несколькими проектами, поэтому рассмотрите этот сценарий.
Проверьте эту статью для некоторых других соображений.
РЕДАКТИРОВАТЬ
Из комментария (23/4/2018):
предложенный вами обходной путь не решит проблему. Мне нужен способ выяснить идентификатор учетной записи BIM360 для страницы, на которой пользователь нажал ссылку "Открыть".
После того, как пользователь нажимает "открыть", ваше приложение должно запросить вход, что дает вашему приложению трехсторонний токен. После этого вызовите конечную точку GET Hubs, отфильтруйте концентраторы для документов BIM 360, если их несколько, попросите пользователя выбрать концентратор / учетную запись, после чего у вас будет идентификатор учетной записи.