【发布时间】:2019-07-13 00:29:25
【问题描述】:
抱歉,标题不明确。但是,我很难描述它。
我正在使用aws-appsync 和aws cognito 进行身份验证。
我已按照有关 @auth 注释的放大文档来处理突变和查询的权限。
这是我的架构示例。 用户可以创建条目并与他人共享。但是,他们应该只阅读该条目,而不应该有编辑它的权限。
一个条目也有多个注释。 (以及更多字段)
type Entry @model @versioned @auth (rules: [
{ allow: owner },
{ allow: owner, ownerField: "shared", queries: [get, list], mutations: []}
]) @searchable {
id: ID!
date: AWSDate
updated_at: AWSDateTime
text: String
notes: [Note] @connection(name: "EntryNotes")
shared: [String]!
}
这是注释
type Note @model @versioned @auth (rules: [{ allow: owner }]) {
id: ID!
text: String
track: Track!
diary: DiaryEntry @connection(name: "EntryNotes")
}
到目前为止,这工作正常。但问题是Note 连接。
因为如果你创建一个笔记,你会像这样创建它:
mutation makeNote {
createNote (input: {
text: "Hello there!"
noteEntryId: "444c80ee-6fd9-4267-b371-c2ed4a3ccda4"
}) {
id
text
}
}
现在的问题是,您可以为您无权访问的条目创建注释。如果您以某种方式找出他们拥有的 id。
有没有办法在创建笔记之前检查您是否有权限访问该条目?
【问题讨论】:
标签: amazon-dynamodb graphql aws-appsync