【问题标题】:GraphQL: Access type properties within @auth headerGraphQL:@auth 标头中的访问类型属性
【发布时间】:2019-02-07 13:43:48
【问题描述】:

假设我有一个类似于以下内容的 GraphQL 架构:

type Posts 
  @model 
  @auth(rules: [
      {allow: groups, groups: ["Employees"], mutations: [create, update, delete, get, list]}
    ])
{
  id: ID!
  name: String
  groups: [String]!
}

我想只允许帖子的groups 属性中列出的用户拥有这些属性。我想做类似的事情:

 @auth(rules: [
          {allow: groups, groups: [Device.groups], mutations: [create, update, delete, get, list]}
 ]

任何想法从哪里开始?我对 GraphQL 比较陌生,我完全有可能完全走错了方向。请帮忙。

编辑

我设法通过修改解析器获得了类似的结果。对于list,它看起来像这样:

    other code...
    #foreach( $postGroup in $item.groups )
        #foreach( $userGroup in $userGroups )
            #if( $postGroup == $userGroup )
                $util.qr($items.add($item))
            #end
        #end
    #end
    ...other code

这当然是一种非常低效的方法(即嵌套的 foreach 循环),但这源于我对 Apache VLT 缺乏了解,并且会在某个时候得到解决。

我仍然想知道,是否可以直接在 GraphQL 架构中执行此操作?

【问题讨论】:

    标签: graphql aws-appsync aws-amplify


    【解决方案1】:

    不幸的是,GraphQL 转换尚不支持这一点,但这是一个有趣的用例,我认为我们应该进一步研究。您能否在https://github.com/aws-amplify/amplify-cli/issues 此处添加功能请求,并提供您的用例和建议,以说明如何以通用方式最好地实现此功能。谢谢!

    【讨论】:

    猜你喜欢
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多