Openlayers 3 开放层3 WMS身份验证

Openlayers 3 开放层3 WMS身份验证,openlayers-3,geoserver,Openlayers 3,Geoserver,我有一个GeoServer,只想通过WMS向拥有用户帐户的用户提供图层。这可以在GeoServer端设置,因为您可以启用基本身份验证,然后将凭据作为URL的一部分传递 这在Firefox中工作得很好,不幸的是,现在很多浏览器都取消了这一功能,因为URL中不推荐使用基本身份验证 因此,将URL设置为: https://MY_USER_NAME:MY_PASSWORD@www.BLAH.com 不再有效 因此,在发出OL3 WMS请求时,如何在客户端提供凭据让我摸不着头脑。这方面似乎缺乏文件 通常

我有一个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请求,我也不知道从哪里开始

你有没有找到解决这个问题的办法?有更新吗?恐怕OL3那边没有。我必须设置一个反向代理,根据加密的查询字符串相应地修改html标题。简言之,你必须制定自己的解决方案,这很麻烦。你尝试过这个吗?不,我使用反向代理解决了这个问题,其中身份验证是通过代理添加的