作为经过身份验证的用户,我可以使用 ArcGIS REST-API“applyEdits”来更新要素层吗?
Posted
技术标签:
【中文标题】作为经过身份验证的用户,我可以使用 ArcGIS REST-API“applyEdits”来更新要素层吗?【英文标题】:Can I use ArcGIS REST-API "applyEdits" to update Feature-Layer as an authenticated user? 【发布时间】:2021-12-22 21:17:46 【问题描述】:我正在使用 nodeJS 使用 REST API 编辑我的功能层。我的意图是:
-
使用 Firebase Cloud-Functions 更新我的图层
公开分享我的图层
但请让未经授权的用户无法编辑我的图层
我想使用我的 API-Key 进行身份验证。
我的问题:如果我将我的特征定义编辑为"capabilities" : "Create, Update, Delete"
,如提到here,那么任何未经授权的用户都可以编辑我的图层,而如果我不这样做,我会得到:
[ '不支持此操作。', '无法添加功能。', “不支持此操作。” ]
身份验证被取消in the documentation。
我的代码:
require("cross-fetch/polyfill");
require("isomorphic-form-data");
const featureLayer = require('@esri/arcgis-rest-feature-layer');
const auth = require('@esri/arcgis-rest-auth');
const apiKey = new auth.ApiKey(key: 'some key...');
featureLayer.applyEdits(
url: "https://services3.arcgis.com/someID/arcgis/rest/services/someName/FeatureServer/0",
adds: [
geometry: x: 120, y: 45 ,
attributes: indexCity: "alive"
],
authentication: apiKey
)
.then(response =>
console.log(response)
)
.catch(err => console.log(err.response.error.details));
我正在终端中使用node example.js
运行我的代码。
我如何才能将 appleEdits 定义为仅作为经过身份验证的用户的我?
【问题讨论】:
【参考方案1】:一种选择是对私有要素图层(可编辑)进行编辑,然后拥有该要素图层的公共(不可编辑)视图。
https://www.esri.com/about/newsroom/arcuser/protect-your-editable-feature-data-from-the-public/ https://doc.arcgis.com/en/arcgis-online/manage-data/create-hosted-views.htm【讨论】:
以上是关于作为经过身份验证的用户,我可以使用 ArcGIS REST-API“applyEdits”来更新要素层吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django 中使用 Javascript 和经过身份验证的用户调用 Django API
如何保护Redis&Socket.IO实时服务器,以便只有经过身份验证的用户才能收听?