【问题标题】:Hiding Carto Sql Api Key?隐藏 Carto Sql Api 密钥?
【发布时间】:2025-08-13 08:25:01
【问题描述】:

目前我正在使用 catro.js 将包含 polyogns 的 carto 表加载到我的地图上的 php 文件中,并且密钥在 javascript 中可见。下面给出的例子是调用sql api。

var layerStyle = $('#landuse-style').text();
cartodb.createLayer(CartoDbLib.map, {
  user_name: 'sandyjones',
  type: 'cartodb',
  sublayers: [{
    sql: "SELECT * FROM master " + query,
    cartocss: layerStyle,
  }],
  extra_params: {
      map_key: "myAPiKey"
  }
}

如果您可以建议我可以使用的代码示例,如何使用代理 php 文件或后端 php 文件在我的服务器上隐藏此 api 密钥。

我曾经尝试过,但遇到了一个问题,即来自 carto 服务器的图像 url 中将包含地图键。

【问题讨论】:

    标签: javascript php cartodb


    【解决方案1】:

    恐怕您需要创建自己的代理。这是一个基于 node.js 的代理作为示例:https://github.com/CartoDB/cartodb-api-proxy,但这不是受支持的代码,甚至可能已经过时。

    如果您的表格数据无论如何都是公开的(并且它将是公开的 - 也通过代理),那么我会在 Carto web 中将表格定义为“公开”,那么您的应用不需要将 API 密钥放入请求完全没有。

    【讨论】: