如何为 AWS Amplify 中的 GraphQL 查询授予单独的权限
How to give separate permissions to GraphQL queries in AWS Amplify
我需要为单独的 GraphQL 查询授予单独的权限。例如,目前我已经定义了两个查询@auth 将这两个查询的权限授予 Admin 组。我如何才能将任何登录用户(Cognito 池)的访问权限授予 invokeLambda
查询,而仅允许管理员组访问 invokeGetGroups
查询?我似乎无法弄清楚它是如何完成的。
type Query {
@auth(
rules: [
{ allow: groups, groups: ["Admins"] }])
invokeLambda: String @function(name: "pythonLambda-${env}")
invokeGetGroups: String @function(name: "getPatchGroups-${env}")
}
您可以在每个函数中使用 @auth
规则:
type Query {
invokeLambda: String
@function(name: "pythonLambda-${env}")
@auth(rules: [{allow: private, provider: userPools}])
invokeGetGroups: String
@function(name: "getPatchGroups-${env}")
@auth(rules: [{allow: groups, groups: ["Admins"]}])
}
我没有尝试使用不同的身份验证规则,但是当我遵循 an AWS tutorial.
时,我确实在每个函数上尝试了相同的身份验证规则
我需要为单独的 GraphQL 查询授予单独的权限。例如,目前我已经定义了两个查询@auth 将这两个查询的权限授予 Admin 组。我如何才能将任何登录用户(Cognito 池)的访问权限授予 invokeLambda
查询,而仅允许管理员组访问 invokeGetGroups
查询?我似乎无法弄清楚它是如何完成的。
type Query {
@auth(
rules: [
{ allow: groups, groups: ["Admins"] }])
invokeLambda: String @function(name: "pythonLambda-${env}")
invokeGetGroups: String @function(name: "getPatchGroups-${env}")
}
您可以在每个函数中使用 @auth
规则:
type Query {
invokeLambda: String
@function(name: "pythonLambda-${env}")
@auth(rules: [{allow: private, provider: userPools}])
invokeGetGroups: String
@function(name: "getPatchGroups-${env}")
@auth(rules: [{allow: groups, groups: ["Admins"]}])
}
我没有尝试使用不同的身份验证规则,但是当我遵循 an AWS tutorial.
时,我确实在每个函数上尝试了相同的身份验证规则