多表突变的Appsync精细粒度控制

时间:2018-10-31 23:01:29

标签: aws-appsync

我有以下模式,事件的作者可以在该事件上做笔记。只有活动的作者才能创建注释。我将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]
}

1 个答案:

答案 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