具有多个 Cognito 用户池的 AppSync

Don*_* Do 6 amazon-web-services amazon-cognito

我正在开发一个使用 AppSync GraphQL 作为 API 的 Amplify 应用程序。

我试图拥有 2 个独立的用户池,可以用作此 GraphQL API 的身份验证源。

按照 Amplify 教程,我能够部署 AppSync GraphQL API,但无法选择配置多个用户池。

我查看了 AWS 控制台,发现我可以在“其他授权提供商”下添加更多用户池,但是当我在查询部分尝试时,只有第一个用户池有效。API 响应为

"message": "Not Authorized to access listTodos on type Query"
Run Code Online (Sandbox Code Playgroud)

这是我的架构:

type Todo @model {
  id: ID!
  name: String!
  description: String
}
Run Code Online (Sandbox Code Playgroud)

我还尝试添加第二个用户池作为 Amplify 生成的身份池的身份验证提供程序,但也没有成功。

是否可以在单个 AppSync API 中使用 2 个用户池?我在这里缺少什么?

谢谢。

小智 5

我面临着同样的问题,但是。最后我想通了。

您必须向具有多个授权的模式添加额外的指令。对于您的情况,您应该按如下方式更新架构:

type Todo @model @aws_cognito_user_pools {
  id: ID!
  name: String!
  description: String
}
Run Code Online (Sandbox Code Playgroud)

您可以从此处找到有关此内容的更多信息: https://aws.amazon.com/blogs/mobile/using-multiple-authorization-types-with-aws-appsync-graphql-apis/

  • 据我所知,这个答案是关于使用多种类型(例如 cognito 和 IAM)。问题是只使用 cognito 但有多个池 (2认同)