如何在mapbox-gl-js中为源指定授权标头?

Pet*_*ete 4 authorization http-headers mapbox-gl-js

如何使用mapbox-gl-js为wms源设置请求标头?我需要所有平铺请求来添加标题,如下所示:

Authorization: "Bearer base64-encoded-token"
Run Code Online (Sandbox Code Playgroud)

WMS例如地图#ADDSOURCE地图#addLayer导致我相信这是不可能的集瓦请求头。

Thu*_*Dev 10

现在,您可以使用该transformRequest选项添加自定义标头:

Map在请求外部URL之前运行的回调。回调可用于修改url,设置标头或为跨域请求设置凭据属性。预期返回一个对象与url属性和任选headerscredentials性质。

例:

var 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 }
     }
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

  • Mapbox 的 api 文档仍然提到了这个选项以及一个类似的例子,所以是的,我相信它应该仍然适用于当前版本。您的身份验证令牌可能有问题。 (2认同)