Reactjs Aws在一个GraphQLAPI中使用多个Cognito用户池进行放大
我是AWS Amplify的新手,我正在尝试做一个简单的项目 我有两个不同的前端(react)项目。其中一个用于博客阅读器,另一个用于编辑器。对于这两个应用程序,我希望使用相同的DynamoDB表(并使用graphqlapi)。但是我想为每个项目使用不同的用户池。我如何实现这一点 我在读这篇文章- 我知道AWS AppSync支持多种授权类型,如cognito、api密钥。。。 但它是否支持两种cognito类型 谢谢,根据AWS,您可以使用两个不同的Cognito组通过以下方式访问相同的AppSync API访问相同的DynamoDB表,这非常简单 如果使用Reactjs Aws在一个GraphQLAPI中使用多个Cognito用户池进行放大,reactjs,amazon-web-services,graphql,aws-amplify,aws-appsync,Reactjs,Amazon Web Services,Graphql,Aws Amplify,Aws Appsync,我是AWS Amplify的新手,我正在尝试做一个简单的项目 我有两个不同的前端(react)项目。其中一个用于博客阅读器,另一个用于编辑器。对于这两个应用程序,我希望使用相同的DynamoDB表(并使用graphqlapi)。但是我想为每个项目使用不同的用户池。我如何实现这一点 我在读这篇文章- 我知道AWS AppSync支持多种授权类型,如cognito、api密钥。。。 但它是否支持两种cognito类型 谢谢,根据AWS,您可以使用两个不同的Cognito组通过以下方式访问相同的App
aws\u auth
指令
type Query {
getPosts:[Post!]!
@aws_auth(cognito_groups: ["Bloggers", "Readers"])
}
type Query {
getPosts:[Post!]!
@aws_api_key @aws_cognito_user_pools(cognito_groups: ["Bloggers", "Readers"])
}
如果使用aws\u cognito\u user\u pool
指令
type Query {
getPosts:[Post!]!
@aws_auth(cognito_groups: ["Bloggers", "Readers"])
}
type Query {
getPosts:[Post!]!
@aws_api_key @aws_cognito_user_pools(cognito_groups: ["Bloggers", "Readers"])
}
现在,如果您特别希望为同一个API和DynamoDB表使用两个不同的用户池,那么您需要多做一点工作来实现这一点。以下是步骤:
@aws\u cognito\u user\u pools
指令进行查询和
这些查询和突变试图访问的模式和对象中的突变$ctx.identity.cognitoIdentityPoolId
时,它将抛出null。因为cognitoIdentityPoolId
仅包括在AWS_IAM
授权头中,而不包括在AWS_COGNITO_用户池中
[]。但是,您仍然可以从$ctx.identity.claims
中的iss
字段中获取用户池ID,它看起来像https://cognito-idp.us-xxxx-x.amazonaws.com/us-xxxx-X_XxxXxxXX
。这us-xxxx-X_XxxXxxXX
是您的用户池ID,您必须以某种方式对其进行解析你是指cognito组还是cognito用户池?