Access Control访问控制
访问控制
Included in the “Power Extensions” bundle
根据用户的登录状态、角色、权限等,对 schema 进行精细化的访问授权。
说明
此扩展允许我们创建访问控制列表,管理哪些用户可以访问 GraphQL schema 中的各种元素(操作、字段和指令)。
站点中将新增一个「访问控制列表」Custom Post Type。可以在菜单中的「访问控制列表」页面浏览其条目,并点击「添加新的访问控制列表」在编辑器中添加新条目。


在编辑器中,我们从操作(query 或 mutation)、字段、全局字段和指令中,指定访问相应 schema 元素所需满足的规则。

通过 Schema 配置,将访问控制列表分配到所需的端点(私有端点、单一端点、自定义端点或 persisted queries)。

执行 GraphQL query 时,如果其中包含访问控制列表中所选的 schema 元素,则会对所选规则进行评估。
如果任何规则未被满足,对该操作、字段或指令的访问将被拒绝,并可配置 API 如何返回响应:
- 公开模式:向用户提供错误消息,说明访问被拒绝的原因
- 私有模式:错误消息显示该操作、字段或指令不存在
例如,在 公开模式 下,可能会返回以下响应:
{
"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
}
]
}
]
}访问控制规则列表
此扩展提供以下访问控制规则:
- 禁用访问
- 仅当用户已登录或已登出时才授予访问权限
- 仅当用户具有特定角色时才授予访问权限
- 仅当用户具有特定权限时才授予访问权限
Next