首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Firebase身份验证流的访问令牌提供对Google云存储桶的读取访问(用于Mapbox向量Tile托管)

使用Firebase身份验证流的访问令牌提供对Google云存储桶的读取访问(用于Mapbox向量Tile托管)
EN

Stack Overflow用户
提问于 2021-01-17 17:19:17
回答 1查看 145关注 0票数 0

我的应用程序使用firebase身份验证,只有来自G套件域的用户才能成功地进行身份验证。我的作用域设置如下:

代码语言:javascript
复制
var provider = new firebase.auth.GoogleAuthProvider();
provider.addScope('https://www.googleapis.com/auth/admin.directory.user')
provider.addScope('https://www.googleapis.com/auth/admin.directory.user.readonly')
provider.addScope('https://www.googleapis.com/auth/devstorage.read_only')
firebase.auth().signInWithRedirect(provider)

我的理解是,我可以使用上述登录流返回的访问令牌,用于http请求,从Google桶中读取对象。我将访问令牌作为标题插入,如下所示:

Authorization: 'Bearer xyz123'

对于我的非公共桶,我启用了统一的桶级访问,其中包含一个IAM角色,允许来自G套件域的用户从桶中读取数据。

但是,这是不起作用的,因为我得到403个对http请求的响应。为了获得更多的上下文,我将向量块托管在桶中,mapbox正在使用它。

知道我哪里出问题了吗?

我确信这是一个权限问题,而不是mapbox配置或向量瓷砖本身的问题。当我把水桶公之于众的时候,一切都很正常。我正在挣扎的是如何将对向量块的访问限制在我的G Suite域中的用户。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-18 16:53:45

所以,我以上所做的是正确的。然而,我遗漏了一个部分:我的的cors设置需要更新以替换

代码语言:javascript
复制
origin: "*"

使用

代码语言:javascript
复制
origin: ["https://domain-name-where-request-comes-from.com", "https://and-dev-site-for-that-domain.com"]

根据其他规范,当期望凭据作为请求的一部分时,不接受*通配符。

我还需要更新cors设置的responseHeader:

代码语言:javascript
复制
"responseHeader": ["X-Requested-With", "Access-Control-Allow-Origin", "Content-Type", "Authorization"]

通过将OAuth令牌插入mapbox请求的标头(通过transformRequset方法),我可以成功地请求和接收瓷砖。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65763668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档