如何在 mapbox-gl-js 中为源指定授权标头?
Posted
技术标签:
【中文标题】如何在 mapbox-gl-js 中为源指定授权标头?【英文标题】:How to specify Authorization Header for a source in mapbox-gl-js? 【发布时间】:2017-04-17 20:59:54 【问题描述】:如何使用 mapbox-gl-js 为 wms 源设置请求标头?我需要所有平铺请求来添加一个如下所示的标题:
Authorization: "Bearer base64-encoded-token"
WMS example、map#addSource 和 map#addLayer 让我相信无法设置磁贴请求标头。
【问题讨论】:
这里有同样的问题,但使用矢量平铺源。您找到添加此标头的方法了吗? 我用的是OpenLayers-3,没有问题。 【参考方案1】:您现在可以使用transformRequest
选项添加自定义标头:
在 Map 请求外部 URL 之前运行回调。回调可用于修改 url、设置标头或设置跨域请求的凭据属性。预期返回具有
url
属性和可选headers
和credentials
属性的对象。
例子:
const map = new mapboxgl.Map(
container: 'map',
center: [2.35, 48.86],
zoom: 13,
transformRequest: (url, resourceType) =>
if (resourceType === 'Source' && url.startsWith('http://myHost'))
return
url: url,
headers: 'Authorization': 'Bearer ' + yourAuthToken
);
【讨论】:
Steve Bennett 和 ThunderDev,这仍然适用于当前的 GL JS 版本吗?我正在向服务器发送授权,但我的地图未授权。 Mapbox 的 api 文档仍然提到了这个选项以及一个类似的例子,所以是的,我相信它应该仍然适用于当前版本。您的身份验证令牌可能有问题。 感谢您的帮助。以上是关于如何在 mapbox-gl-js 中为源指定授权标头?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring sec 中为组使用属性:hasAnyRole 的授权标签
如何使用Jersey在REST Web服务中为服务类指定多个包名称
如何在Mapbox GL JS动画中为LineString分段着色不同
如何在 mapbox-gl-js 中以某些缩放级别隐藏点标签?