在 Cogntio/AWS Amplify 中支持多个用户池或组织?
Support multiple user pools or organizations in Cogntio/AWS Amplify?
假设我们通过 AWS Amplify CLI 使用 AppSync 和 AWS Cognito,并使用它来托管诸如博客、博客帖子和评论等内容。
在 amplify/AppSync/Cognito 中是否可以让多个组织拥有博客,每个组织都有自己的访问控制(所有者、管理员等)?这样数据是分开的,但 AppSync、GraphQl 模型等是相同的?
即这样一个博客的编辑和管理员只能查看或编辑自己的博客文章,而不能查看或编辑其他博客的文章等。
谢谢!
是的,这是可能的。 Cognito 具有可以将用户分配到的组的概念。因此,您可以拥有一个名为 Admins 的组,您只能将管理员用户分配给该组。您可以通过多种方式在 AppSync 中进行细粒度访问,或者通过如下模式指令:
type Query {
posts:[Post!]!
@aws_auth(cognito_groups: ["Bloggers", "Readers"])
}
type Mutation {
addPost(id:ID!, title:String!):Post!
@aws_auth(cognito_groups: ["Bloggers"])
}
或通过在解析器映射模板中过滤组(您在 context.identity 对象中获取组信息)。
假设我们通过 AWS Amplify CLI 使用 AppSync 和 AWS Cognito,并使用它来托管诸如博客、博客帖子和评论等内容。
在 amplify/AppSync/Cognito 中是否可以让多个组织拥有博客,每个组织都有自己的访问控制(所有者、管理员等)?这样数据是分开的,但 AppSync、GraphQl 模型等是相同的?
即这样一个博客的编辑和管理员只能查看或编辑自己的博客文章,而不能查看或编辑其他博客的文章等。
谢谢!
是的,这是可能的。 Cognito 具有可以将用户分配到的组的概念。因此,您可以拥有一个名为 Admins 的组,您只能将管理员用户分配给该组。您可以通过多种方式在 AppSync 中进行细粒度访问,或者通过如下模式指令:
type Query {
posts:[Post!]!
@aws_auth(cognito_groups: ["Bloggers", "Readers"])
}
type Mutation {
addPost(id:ID!, title:String!):Post!
@aws_auth(cognito_groups: ["Bloggers"])
}
或通过在解析器映射模板中过滤组(您在 context.identity 对象中获取组信息)。