是否可以在 Amplify 的 schema.graphql 中指定 2 个带有身份验证注释的 Cognito 用户池?

Posted

技术标签:

【中文标题】是否可以在 Amplify 的 schema.graphql 中指定 2 个带有身份验证注释的 Cognito 用户池?【英文标题】:Is it possible to specify 2 Cognito user pools with auth annotation in schema.graphql in Amplify? 【发布时间】:2021-09-21 08:05:00 【问题描述】:

我有一个关于 Amplify 的问题,尤其是如何

从同一个 API(AppSync) 连接两个 Amazon Cognito 用户池 在 schema.graphql 中定义需要 Amazon Cognito 用户池身份验证的位置。

下图是我想要实现的。 有些 API 需要 user pool for user 身份验证,但另一方面,其他 API 需要 user pool for admin

API 必须能够看到相同的 Dynamo DB。

【问题讨论】:

Appsync 确实支持多个 cognito 用户池,但不幸的是,amplify 不支持它,请参阅目前有未解决的问题 github.com/aws-amplify/amplify-cli/issues/4853 【参考方案1】:

Amplify 不支持多个用户池。但是,您可以使用用户组实现类似的目标:https://docs.amplify.aws/cli/auth/groups

然后,当您使用 API 时,您可以使用授权规则:https://docs.amplify.aws/cli/graphql-transformer/auth#multiple-authorization-rules

这里有一篇关于它的博文:https://aws.amazon.com/blogs/mobile/aws-amplify-allows-you-to-mix-and-match-authorization-modes-in-datastore/

【讨论】:

以上是关于是否可以在 Amplify 的 schema.graphql 中指定 2 个带有身份验证注释的 Cognito 用户池?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在没有 Cognito 用户池的情况下使用 AWS Amplify Analytics?

是否可以向使用 AWS Amplify 预置的 lambda PostAuthenticate 函数授予额外权限?

AWS Amplify,如何检查用户是不是登录?

一起使用 Amplify 和 SAM?

在 Cogntio/AWS Amplify 中支持多个用户池或组织?

更新AWS Amplify中现有应用程序的回购访问密钥