使用带key访问iPortal-REST服务
背景:SuperMap iPortal 上注册的REST服务,设置了访问权限,第三方访问对应服务需要携带key校验。
1、在我的账户下申请key,添加可访问的服务
2、客户端SDK代码实现
1)请求url后直接拼接:xxx?key=xxxx
2)通过引用的SDK默认API添加key
SuperMap.SecurityManager.registerKey(url2,'F4UsN1JMNunpxus4ounA6OIW');
注意设置source时需要设置下当前服务来源:serverType: SuperMap.ServerType.IPORTAL,
DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title data-i18n="resources.title_WMSLayer">title>
<script type="text/javascript" src="../js/include-web.js">script>
<script type="text/javascript" src="../../dist/ol/include-ol.js">script>
head>
<body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%; position: absolute;top: 0;">
<div id="map" style="width: 100%;height:100%">div>
<script type="text/javascript">
var map;
map = new ol.Map({
target: 'map',
controls: ol.control.defaults({
attributionOptions: {
collapsed: false
}
})
.extend([new ol.supermap.control.Logo()]),
view: new ol.View({
center: [104.09 , 30.52],
zoom: 16,
projection: 'EPSG:4326',
multiWorld: true
}),
layers: [new ol.layer.Tile({
source: new ol.source.Tianditu({
layerType: 'img',
key: "1d109683f4d84198e37a38c442d68311",
projection: "EPSG:4326"
})
}), new ol.layer.Tile({
source: new ol.source.Tianditu({
layerType: 'img',
key: "1d109683f4d84198e37a38c442d68311",
isLabel: true,
projection: "EPSG:4326"
})
})]
});
var url2="http://xxx:8195/portalproxy/iserver/services/map-CT/rest/maps/outdoor_map_cn";
SuperMap.SecurityManager.registerKey(url2,'F4UsN1JMNunpxus4ounA6OIW');
var layer = new ol.layer.Tile({
source: new ol.source.TileSuperMapRest({
serverType: SuperMap.ServerType.IPORTAL,
url: url2,
//url: "http://xxx:8195/portalproxy/iserver/services/map-CT/rest/maps/outdoor_map_cn",
//url: "http://xxx:8195/portalproxy/iserver/services/map-CT/rest/maps/outdoor_map_cn?key=F4UsN1JMNunpxus4ounA6OIW",
wrapX: true
}),
projection: 'EPSG:4326'
});
serverType:SuperMap.ServerType.IPORTAL
map.addLayer(layer);
map.addControl(new ol.supermap.control.ScaleLine());
script>
body>
html>