我有一个GeoServer,并且只想通过WMS向拥有用户帐户的用户提供图层 . 可以在GeoServer端设置,因为您可以启用基本身份验证,然后将凭据作为URL的一部分传递 .

这在Firefox中工作正常,遗憾的是,现在许多浏览器已删除此功能,因为URL中不推荐使用基本身份验证 .

所以设置一个URL:

https://MY_USER_NAME:MY_PASSWORD@www.BLAH.com

不再有效 .

因此,在制作OL3 WMS请求时,我仍然不知道如何在客户端提供凭据 . 似乎缺乏关于此的文件 .

通常我的WMS调用如下所示:

WMS_layer = new ol.layer.Tile({
      preload: Infinity,
      visible: true,
      opacity:0.7,
      extent: ol.proj.transformExtent([-1.194, 51.880, -1.111, 51.930], "EPSG:4326", "EPSG:3857"),
      source: new ol.source.TileWMS(({
        url: 'https://www.my-geoserver.co.uk/geoserver/' + workspace + '/wms',
        params: {'LAYERS': workspace + ':' + layer_name, 'TILED': true, 'VERSION': '1.3.0'},
        projection: projection,
        serverType: 'geoserver',
        FORMAT: 'image/jpeg'
        }))
});

因此,由于我无法再向URL添加用户名和密码,我如何通过身份验证 . 我可以使用身份验证标头作为一种解决方案,但如何通过OL3内的WMS调用发送身份验证标头?

我听说过人们倾向于在服务器端使用代理来处理XHR请求,我也不知道从哪里开始!