我需要为单独的GraphQL查询提供单独的权限。例如,目前我定义了两个查询@auth为这两个查询授予Admin组权限。我怎么能给访问任何登录用户(Cognito池)对invokeLambda
查询和只有Admin组对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"]}])
}
我没有尝试过不同的认证规则,但是当我在学习AWS教程时,我确实尝试过在每个函数上使用相同的认证规则。