【问题标题】:Using Request Headers in Query/Mutation在查询/突变中使用请求标头
【发布时间】:2022-11-08 02:03:14
【问题描述】:

我正在关注有关创建待办事项应用程序 https://hasura.io/learn/graphql/hasura-advanced/introduction/ 的 Hasura 基本教程,并希望对其进行扩展并且几乎没有额外的操作,但似乎无法。设置与教程中的一样 - 您有 Tasks 表和 titledescriptionauthorIdisCompleteisPublic 列。表权限的设置与教程中一样,因此用户只能选择自己的任务或公共任务。他们也可以只更新自己的任务。我要添加的操作:

  1. 仅查询不属于他们的公共任务(此外,反之亦然 - 仅属于他们而没有公共任务)。
  2. 改变公共任务以完成不属于他们的任务(更新isComplete 而不具有其他列的权限)。

    我可以为第一种情况创建视图,但是对于这样一个简单的逻辑来说,这似乎太过分了。我认为这两种情况都可以通过访问请求标头 (x-hasura-user-id) 来完成,如下所示:

    query PublicTasksOnly {
      tasks(where: {isPublic: {_eq: true}, authorId: {_neq: x-hasura-user-id}}) {
        description
        isComplete
        title
      }
    }
    

    但似乎这是不可能的。任何想法/建议如何实现这一目标?

【问题讨论】:

    标签: hasura


    【解决方案1】:

    据我所知,我认为不可能在您的 graphql qureies 中引用 http 标头。您是否尝试过将 userId 作为变量传递给查询?类似于以下内容:

    query PublicTasksOnly($userId: String!) {
      tasks(where: {isPublic: {_eq: true}, authorId: {_neq: $userId}}) {
        description
        isComplete
        title
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-06-28
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      相关资源
      最近更新 更多