扩展

Access Control

根据用户的登录状态、角色或权限,或 IP 地址,授予对 schema 的细粒度访问权限,管理谁可以访问哪些数据。

Logo
Target Image

Click to watch tutorial video - 08:04

定义访问控制列表,管理用户对 API 的细粒度访问权限。

访问控制列表

此扩展允许创建访问控制列表,使用以下规则管理谁可以访问 GraphQL schema 中的不同元素(操作、字段和指令):

  • 禁用访问
  • 仅当用户已登录或已登出时授予访问权限
  • 仅当用户拥有某个角色时授予访问权限
  • 仅当用户拥有某个权限时授予访问权限
  • 仅当访客来自允许的 IP 时授予访问权限
访问控制列表编辑器
访问控制列表编辑器

我们在操作、字段、全局字段和指令中指定访问哪些 schema 元素需要满足哪些规则。

执行 GraphQL query 时,如果其中包含访问控制列表中所选的任何 schema 元素,则会对所选规则进行评估。

如果任何规则未被满足,则对该操作、字段或指令的访问将被拒绝。

公开/私有 Schema 模式

当通过访问控制拒绝对某个字段或指令的访问时,API 有两种行为方式:

公开模式:schema 中的字段是公开的,当权限不满足时,用户会收到一条错误消息,说明权限被拒绝的原因。此行为使 schema 的元数据始终可用。

私有模式:schema 针对每个用户进行定制,仅包含该用户可访问的字段,因此当尝试访问被禁止的字段时,错误消息会提示该字段不存在。此行为仅向有权访问的用户公开 schema 的元数据。

单独的公开/私有 schema 模式

例如,在 公开模式 下,我们可能会得到如下响应:

{
  "errors": [
    {
      "message": "You must have role 'author' to access field 'title' for type 'Post'",
      "locations": [
        {
          "line": 86,
          "column": 3
        }
      ]
    }
  ]
}

而在 私有模式 下,我们可能会得到如下响应:

{
  "errors": [
    {
      "message": "There is no field 'title' on type 'Post'",
      "locations": [
        {
          "line": 86,
          "column": 3
        }
      ]
    }
  ]
}

购买 All-Inclusive 套装

Personal
$79
/
“All-Inclusive” 套装
授权适用于 1 个域名
购买 ->
  • 1 个域名
  • 支持
  • 产品更新
Organization
$99
/
“All-Inclusive” 套装
授权适用于 3 个域名
购买 ->
  • 3 个域名
  • 支持
  • 产品更新
Professional
$199
/
“All-Inclusive” 套装
授权适用于 10 个域名
购买 ->
  • 10 个域名
  • 支持
  • 产品更新

授权有效期为 1 年(每年可续订)。价格以美元(USD)计。

需要更多域名?联系我们

30 天退款保证

购买任何扩展,均可申请退款保障

Features illustration
Money back guarantee

阅读我们的退款政策

Testimonial image

“这款插件真的是另一个层次!它能把你的网站提升到全新水平,变成一个强大的引擎。你越深入探索它的功能,就越会感到惊叹。如果你还在犹豫——赶紧入手吧,不然你以后会后悔的! 文档本身就说明了一切,扎实得不能再扎实。 Leo(开发者)是我遇到过的最敏锐、最全面的开发者之一。他的响应非常快,明显对自己的专业领域了如指掌。这款插件能做的事情之多,真的让我非常兴奋。可能性几乎无穷无尽,如果你重视 SEO,这款插件会让你的网站排名大幅提升。”

olmate - Web 开发者

订阅我们的新闻通讯

及时了解 Gato GraphQL 的所有更新。