BIM360 App Store:如何识别Account ID并验证租户账户关联
如何获取BIM360 Account ID并判断账户绑定状态
嘿,这个场景我太熟悉了,咱们一步步拆解来解决:
第一步:获取BIM360 Account ID
当用户从BIM360点击「Open」打开你的应用时,BIM360会通过两种方式提供账户标识,轻松拿到Account ID:
方式1:直接从URL查询参数提取(最快捷)
BIM360跳转你的应用时,会把account_id作为查询参数拼在应用入口URL后,格式大概是:
https://your-app-domain.com/launch?account_id=123e4567-e89b-12d3-a456-426614174000
你只需要在前端或后端解析这个URL的查询参数,就能直接拿到目标BIM360账户的ID。
方式2:通过Forge API验证并获取(更严谨)
如果需要确保Account ID的有效性,或者用户通过其他授权路径进入应用,可以用OAuth流程拿到的用户access token调用Forge API:
- 先调用
GET /user/profile获取用户基本信息,确认身份; - 再调用
GET /hubs接口,返回的响应里,BIM360类型的Hub会包含:id:格式为b.xxxxxx的Hub ID(和Account ID一一对应);attributes.extension.data.account_id:纯字符串格式的Account ID,和URL参数里的完全一致。
第二步:实现绑定状态判断逻辑
拿到Account ID后,判断绑定就很清晰了:
- 你的多租户服务需要维护一个映射存储表(比如数据库里的
bim360_account_bindings表),字段至少包含bim360_account_id和your_service_tenant_id,并且把bim360_account_id设为唯一约束(确保一个BIM360账户只能绑定一个你方租户)。 - 当获取到
account_id后,直接查询这个映射表:- 如果查到对应记录:说明该BIM360账户已绑定,直接跳转至用户的应用专属页面;
- 如果没有查到记录:引导用户完成绑定流程(比如创建新的你方租户账户,或关联已有账户,绑定后把映射关系存入表中)。
注意事项
- 一定要做参数验证:别直接信任URL里的
account_id,可以调用GET /hubs/{hub_id}接口(用用户的access token),确认这个Account ID真实存在且当前用户有权访问,避免恶意请求。 - 保持映射关系唯一性:数据库里的
bim360_account_id必须设为唯一键,防止重复绑定。
内容的提问来源于stack exchange,提问作者Bandu W
相关产品推荐
相关产品推荐

