2015-05-15 55 views
3

範圍密鑰如何用於寫入操作?作用域密鑰如何用於寫入? (範圍寫入密鑰返回401未授權。)

當我嘗試使用(範圍)寫密鑰時,API響應401 Unauthorized; 「主寫密鑰」就像一個魅力。使用範圍鍵進行讀操作也適用。

我假設我選擇的過濾器等工作不正常,但我找不到the documentation中的任何詳細信息,說明範圍鍵如何工作於write操作。 (對於上下文,我正在努力限制範圍鍵以強制執行某些參數值,實質上,使用範圍鍵對給定鍵上的集合進行「分片」處理,以便多個租戶可以寫入同一個集合,同時不能夠僞造對方的價值觀)

我使用過濾器類似如下:。

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

我使用.NET SDK創建範圍鍵,並且可以通過解密驗證過濾器值之後關鍵。它會得到一個Web應用程序中使用,所以使用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) { /* … */ }); 

什麼是SOP對Keen.IO作用域寫?

回答

2

SOP:Keen API期望您在POST請求中提供可寫入範圍密鑰作爲writeKey

write操作的作用域鍵不會按照您的建議(至少不是今天)運行。目前用於寫入的範圍化密鑰只不過是混淆了主/寫密鑰。您作爲每個事件的一部分追加的所有屬性數據仍必須在客戶端的addEvent方法的JSON有效內容中提供。

我們通常推薦在您需要保護/操作您的寫入之前將服務器端實現發送給Keen。