3

范围键如何用于写操作?

当我尝试使用(范围)写入密钥时,API 会响应401 Unauthorized;“主写密钥”就像一个魅力。使用范围键进行读取操作也可以。

我假设我选择的过滤器等没有成功,但我在文档中找不到有关范围键如何用于write操作的任何详细信息。

(对于上下文,我正在努力限制范围键以强制执行某些参数值。本质上,使用范围键在给定键上“分片”集合,以便多个租户可以写入同一个集合,而不能伪造彼此的价值观。)

我使用如下过滤器:

{
  "filters": [
    {
      "property_name": "whatever",
      "operator": "eq",
      "property_value": "client value"
    }
  ],
  "allowed_operations": ["write"]
}

我使用 .net SDK 创建范围密钥,然后可以通过解密密钥来验证过滤器值。它将在 Web 应用程序中使用,因此使用Keen IO JS 库,类似于:

var client = new Keen({
    projectId: "…",
    writeKey: "…", // <- generated scoped write key goes here
    readKey: "…",
    protocol: "https",
    host: "api.keen.io/3.0",
    requestType: "jsonp"
});

client.addEvent("my-collection", { /* … */ }, function (err, res) { /* … */ });

Keen.IO 上的范围写入的SOP是什么?

4

1 回答 1

2

writeKeySOP:Keen API 希望您在请求中提供启用写入的作用域密钥 POST

操作的作用域键write不会按照您的建议执行(至少今天不会)。当前范围内的写入键只会混淆您的主/写键。作为每个事件的一部分附加的所有属性数据仍必须在客户端的 addEvent 方法的 JSON 有效负载中提供。

如果您需要在将写入发送给 Keen 之前保护/操作您的写入,我们通常建议您使用服务器端实现。

于 2015-05-18T18:06:27.357 回答