我有以下模式,事件的作者可以在该事件上做笔记。只有活动的作者才能创建注释。我将author
存储在事件中。但是,我发现其他用户可以通过简单地传递另一个用户事件的eventId来为其未编写的事件创建注释,例如:
mutation {
noteOnEvent(input: { eventId: "***", content: "A comment"}) {
eventId
content
}
}
如何防止这种情况?我找不到在noteOnEvent
解析器中访问EventTable作者的方法
架构
type Note {
eventId: ID!
notetId: ID!
content: String
author: String
}
input CreateNoteInput {
eventId: ID!
noteId: String!
content: String
}
type Event {
id: ID!
name: String
author: String
notes: [Note]
}
答案 0 :(得分:0)
您可以使用嵌套解析器完成此操作。
如果您稍微修改架构,则可以像这样完成它:
*** Variables ***
${dir} = "c:\\temp"
*** Test Cases ***
Test
print ${dir}
run keyword if 1 == 1 print ${dir}
*** Keywords ***
print
[Arguments] ${input1}
log to console \r${input1}
此处是有关使用嵌套解析器对涉及多个数据源的授权检查的教程:https://hackernoon.com/graphql-authorization-with-multiple-data-sources-using-aws-appsync-dfae2e350bf2