作为经过身份验证的用户,我可以使用 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实时服务器,以便只有经过身份验证的用户才能收听?

Back4App 使用 PFUser 类的经过身份验证的权限创建用户

将经过身份验证的用户作为字段的 Django 表单验证

使用 Graphcool 发出经过身份验证的查询

CloudKit 错误:在 Mac 上未经过身份验证,但我已登录