ArcGIS API For Javascript :如何動態生成 token 加載權限分配的地圖服務?


 

一、需求

項目中我們通常會遇到為外協團隊、合作友商提供地圖服務的需求,因此對地圖服務的權限需要做出分配。

 

二、現狀

主流的辦法是用用戶和角色來控制,通常使用代理方式和用戶名密碼的方式來實現。

 

三、思路

另一種方法是使用 token ,token 生成的方式有三種,分別是對某一 web 應用、固定 IP 、以及客戶端 IP 。

可以看出最靈活的方法是用客戶端 IP 生成 token 。

 

四、方法

1. 后台設置

(1)ArcGIS Server Manager > 安全性 > 角色 > 新建角色

(2)ArcGIS Server Manager > 服務 > 編輯權限 > 私有

 

(3)ArcGIS Token Service 調試

地址為:http://localhost:6080/arcgis/tokens/generateToken

通常情況下我們需要在這個頁面拿到動態生成的 token,但是集成在項目中很不方便,因此觀察獲取 token 的請求如下:

http://localhost:6080/arcgis/tokens/generateToken?password=***&f=html&username=***&client=***&referer=&ip=&expiration=***&encrypted=true

我們就會得到一個動態生成的 token 。

2. 項目中集成

(1)示例

var getTokenUrl = "http://localhost:6080/arcgis/tokens/generateToken?password=***&f=html&username=***&client=***&referer=&ip=&expiration=***&encrypted=true";

$.ajax({
  url: getTokenUrl,
  success:function(res){
    var layer = new esri.layers.ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services/SampleWorldCities/MapServer?token="+res);
    map.addLayer(layer);
  }
});

 

五、總結

這個方法不需要下載代理文件,更輕便,關於 token 的有效期也可以根據自己的需求來設置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM