【发布时间】:2016-03-30 10:08:32
【问题描述】:
我正在尝试查询类中的 DataObjects。我正在使用 Data Object - List 文档底部的“试用”表单,但我收到 403“您无权执行此操作”响应。
我提供了 API 密钥、实例名称,并且我尝试过使用简单查询和不查询。
我检查了类的“其他”权限,并将其设置为“读取”。类中唯一 DataObject 的“其他”权限也是如此。
我尝试通过 Javascript 包含这样的 userKey:
var Syncano = require("syncano")
var conn = Syncano({ apiKey: config.apiKey })
var DataObject = conn.DataObject
app.use("/:un", function(inReq, inResp, inNext)
{
var list =
{
instanceName: config.instance,
userKey: inResp.locals.userKey,
className: "member",
}
var query =
{
path: inReq.params.un
}
DataObject.please()
.list(list)
.filter(query)
.then(function(inResult)
{
sLogger.info("Result: " + JSON.stringify(inResult))
inResp.render("user")
})
.catch(function(inError)
{
sLogger.error("Failed to get user: ", inError)
})
})
但我仍然收到 403“您没有执行此操作的权限”。
解决方案:
解决方案(感谢@mariusz-wiśniewski)是将 apiKey 和 userKey 传递给 Syncano() 构造函数:
var Syncano = require("syncano")
app.use("/:un", function(inReq, inResp, inNext)
{
var conn = Syncano({ apiKey: config.apiKey, userKey: inResp.locals.userKey })
var DataObject = conn.DataObject
var list =
{
instanceName: config.instance,
className: "member",
}
var query =
{
path: inReq.params.un
}
DataObject.please()
.list(list)
.filter(query)
.then(function(inResult)
{
sLogger.info("Result: " + JSON.stringify(inResult))
inResp.render("user")
})
.catch(function(inError)
{
sLogger.error("Failed to get user: ", inError)
})
})
【问题讨论】:
标签: syncano