范围键如何用于写操作?
当我尝试使用(作用域)写密钥时,API会响应401 Unauthorized
; "主写密钥"奇迹般有效。使用范围键进行读取操作也很有效。
我认为我选择的过滤器等并没有成功,但我无法在the documentation中找到有关范围键如何适用于write
操作的任何详细信息。
(对于上下文,我正在努力限制范围键以强制执行某些参数值。实质上,使用范围键来“" shard"给定键上的集合,以便多个租户可以写入相同的集合,但不能伪造彼此的价值观。)
我使用如下过滤器:
{
"filters": [
{
"property_name": "whatever",
"operator": "eq",
"property_value": "client value"
}
],
"allowed_operations": ["write"]
}
我使用.net SDK创建范围键,然后可以通过解密密钥来验证过滤器值。它将在网络应用中使用,因此请使用Keen IO JS library,类似于:
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是什么?
答案 0 :(得分:2)
SOP:Keen API希望您在writeKey
请求中提供POST
写入启用的范围键。
write
操作的范围键无法按照您的建议执行(至少今天不行)。目前用于写入的作用域键只会混淆您的主/写密钥。作为每个事件的一部分附加的所有属性数据仍必须在客户端的addEvent方法的JSON有效内容中提供。
我们通常建议在您将写入发送给Keen之前需要保护/操作写入的情况下服务器端实现。