iServer 通过Http Referer注册Token后如何使用

0 投票

在iServer中注册了Http Referer,获得Token后,想要以"?token=TokenValue"的形式直接添加在使用的iCLient Classic的地图服务url后面,但添加后变无法正常读取图层。

返回结果是401,token错误

  • error :
    • code    : 401
    • errorMsg    : Invalid token

401稍作修改后便解决了,但之后还有一种报错如下


发送这个请求的是Http Referer设置的网页。请问Http Referer注册的Token应该如何正常使用

6月 17 分类:  78次浏览 | 用户: kinnyou 牛刀小试 (131 分)
修改于 6月 17 用户:kinnyou

1个回答

0 投票
HTTP Referer:指定使用令牌的客户端地址,即访问 GIS 服务的客户端的页面 URL。此方式可绑定访问服务的 URL,使用其他 URL 访问 GIS 服务时,即使携带了 Token 也会被服务端拒绝。此方式适用于通过 iClient(如 SuperMap iClient for JavaScript)或基于 REST 的其他应用程序来构建 Web Application 的情况。
您这个报错是因为json格式问题,请检查下json文件格式
6月 17 用户: 张定祥 名扬四海 (1,904 分)
您好,我代码如下

var map;

map = new SuperMap.Map("map", {
            controls: [
                new SuperMap.Control.Navigation(),
                new SuperMap.Control.Zoom()]
        });
        map.addControl(new SuperMap.Control.MousePosition());
        //初始化图层
        var url2 = "地图服务URL?token=TokenValue";
        var layer2 = new SuperMap.Layer.TiledDynamicRESTLayer("Test", url2, null, {
                projection: "EPSG:4326"
            });
            layer2.events.on({ "layerInitialized": addLayer2 });

            function addLayer2() {
                map.addLayers([layer2]);
                console.log("finish");
                map.setCenter(new SuperMap.LonLat(0, 0), 0);
            }

这个json格式问题应该不是主要原因,当我把token去掉时,地图是可以正常显示的

您好,我这边查了一下json,能够正常显示的,不带token的json最后是"/maps/xxx.json"。

直接在url后面加上"?token=TokenValue"的场合,json最后是"/maps/xxx?token=TokenValue.json",然后返回的是iserver中的界面

请问申请了http referer的token后,还应该做些什么步骤。

比如只想让指定Referer能够对某个服务进行请求,那这个服务本身的公开对象应该如何限制。

然后和上面问的一样,在地图服务的url后面加上"?token=TokenValue"的正确做法又是怎么样的

比较想了解一下这方面
您好,怎么按照这个方法使用token这个问题比较急,请问能否告知一下···
...