【问题标题】:GraphQL scheme based permissions基于 GraphQL 模式的权限
【发布时间】:2020-05-29 06:14:13
【问题描述】:

我正在 Node 中构建一个 GraphQL 服务器并处理权限主题。我进行了一项研究,大部分建议是将此逻辑放在解析器中的某个位置。

我希望它能够将权限检查作为中间件步骤,也就是说,在它到达相应的解析器之前。这将有几个优点,例如: - 授权逻辑被所有解析器集中和重用 - 解析器逻辑更加简洁明了

对这种方法有何看法? 任何支持基于 GraphQL 方案的权限验证的现有库

【问题讨论】:

  • 粒度 - 每个字段访问,一些限制(每个计划) - keystonejs

标签: node.js graphql apollo


【解决方案1】:

GraphQL.js 本身并不支持解析器的“中间件”——因为它们是函数,你可以用任何额外的函数包装它们来添加逻辑,而无需重复自己。也就是说,您可以添加 graphql-middleware 以获得更好的 API,以便向多个解析器添加逻辑。如果您使用graphql-middleware,您可以添加专门处理授权的graphql-shield

【讨论】:

    【解决方案2】:

    你可以使用schema-directives,这对graphql来说更自然

    这里有一个包可以帮到你 graphql-directive-auth

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-21
      • 2011-03-26
      • 2017-09-28
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      相关资源
      最近更新 更多