访问受保护的服务资源

发送反馈


用户获取了可用的 Token 以后,就可以访问受保护的 SuperMap iServer 服务及相关资源。服务访问时,可以通过 SuperMap iClient 客户端(for JavaScript、for Flash、for Silverlight、for Android 等)发送请求,可以直接以 REST 的方式或基于 REST 的应用程序发送请求,也可以通过在 Header 中传递 Token 的方式发送请求,进一步降低安全风险。

通过 REST 方式

SuperMap iServer 提供的 GIS 服务(详见GIS 服务资源层次结构)、OGC 服务和服务管理的所有资源(详见服务管理资源层次结构),均支持通过 Token 来访问,只需在访问时添加“token”参数即可。需要注意的是,访问受保护的服务中的每一个资源时,都要携带“token”参数。

例如:

http://localhost:8090/iserver/services/map-china400/rest?token=NZkILm9Tl2FGzwK_nUh9krlHOtO0ds83lDoARA85_rMveuTyK0TyGcYV-5rn3wUYE-MSNPlw6wKnewy8jek_JQ..

http://localhost:8090/iserver/services/map-china400/rest/maps/China/tileImage.png?token=NZkILm9Tl2FGzwK_nUh9krlHOtO0ds83lDoARA85_rMveuTyK0TyGcYV-5rn3wUYE-MSNPlw6wKnewy8jek_JQ..

请参考:GIS 服务的快速发布(通过 REST API)

通过 iClient 客户端

除了直接通过 REST 方式传入 Token 外,SuperMap iClient SDK 中提供了通过客户端应用程序传入 Token 的接口。详细使用方式可参考SuperMap iClient 11i(2023) JavaScript

通过在 Header 中传递 Token

除了直接通过 REST 方式在 URL 中传递 Token 外,SuperMap iServer 还支持在 Header 中传递 Token,进一步降低安全风险。详细使用方式如下:

在 Header 请求头中,写入“token”参数和 token 值即可。

例如:

通过 Fiddler 模拟访问 map-Population/rest 服务,只需在 Header 中最后一行输入“token”参数和 token 值,如下面黑体所示:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

Sec-Fetch-Site: same-origin

Sec-Fetch-Mode: navigate

Sec-Fetch-User: ?1

Sec-Fetch-Dest: document

Referer: http://localhost:8090/iserver/services

Accept-Encoding: gzip, deflate, br

Accept-Language: zh-CN,zh;q=0.9

Cookie: JSESSIONID=F6EA9B952D034012D24510CDBC81C056; pathType=normal; filemanagerview=list; language=zh-CN

If-None-Match: W/"1eff28898f54315589652e172eeec45e"

token: 3oQxR71UBO4m22HFiWXjCWAqX_d8exjmBFpnNYA1vcwXDkVNFu8kQjuXoO7R3PJ5d-kgM6GpK_BBHRQuafUlTA..