gpt4 book ai didi

graphql - 在 AppSync @auth 规则中,如何将 ownerField 设置为数组中的属性?

转载 作者:行者123 更新时间:2023-12-04 14:16:51 27 4
gpt4 key购买 nike

想象一下,我有以下 AppSync GraphQL 模式,其中包含一个 User 类型和一个 Post 类型,其中一个 editors 字段设置为一个数组用户:

type User
@model
@auth(rules: [
{ allow: owner }
])
{
id: ID!
owner: String!
username: String!
}

type Post
@model
@auth(rules: [
{ allow: owner },
# Can I do this?
# { allow: owner, ownerField: "editors.owner", operations: [update] }
])
{
id: ID!
owner: String!
title: String!
content: String
editors: [User]
}

如何创建一个 @auth 规则来为 editors 数组中的 User 提供更新权限?

最佳答案

如果您使用的是亚马逊 Cognito 用户池,则应将 Post 中的编辑器类型设置为字符串数组,并将值设置为您想要访问的用户的 Cognito ID。这是解释in the amplify cli documentation .

要让编辑器成为 User 类型,我建议您创建另一个名称不同的参数(例如 editorUsers)并将其连接到 User 模型,如所述 here

您的架构应如下所示:

type User
@model
@key(name: "byUser", fields: ["username"])
@auth(rules: [
{ allow: owner }
])
{
id: ID!
owner: String!
username: String!
}

type Post
@model
@auth(rules: [
{ allow: owner },
{ allow: owner, ownerField: "editors", operations: [update] }
])
{
id: ID!
owner: String!
title: String!
content: String
editors: [String]
editorsUsers: [User] @connection(keyName: "byUser", fields: ["id"])
}

关于graphql - 在 AppSync @auth 规则中,如何将 ownerField 设置为数组中的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59381854/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com