身份验证
这是 GraphQL 库版本 7 的文档。对于长期支持 (LTS) 版本 5,请参考 GraphQL 库版本 5 LTS。 |
GraphQL 库提供了 @authentication
指令,用于配置某些操作和 Schema 不同部分的身份验证。
使用 |
操作
身份验证可以配置为仅在某些操作上进行验证
-
创建
-
读取
-
聚合
-
更新
-
删除
-
创建关系
-
删除关系
-
订阅
例如,仅在更新或删除用户时需要身份验证
type User @authentication(operations: [UPDATE, DELETE]) @node {
id: ID!
name: String!
password: String!
}
如果 |
范围
全局身份验证
身份验证可以应用于整个 Schema。这确保了每个匹配请求都会进行身份验证检查。
扩展 Schema
extend schema @authentication
当指令应用于 Schema 扩展时,也可以使用 operations
和 jwt
参数,例如
extend schema @authentication(operations: [UPDATE, DELETE], jwt: { roles_INCLUDES: "admin" })
类型的身份验证
可以为整个类型配置身份验证
type User @authentication @node {
id: ID!
name: String!
password: String!
}
通过此配置,当尝试执行以下任何操作时,都会验证身份验证:
-
创建:
createUsers
变更操作,通过相关类型执行的create
嵌套操作。 -
读取:
users
、usersConnection
、aggregate
查询,或通过相关类型进行访问。 -
更新:
updateUsers
变更操作,或通过相关类型执行的update
嵌套操作。 -
删除:
deleteUsers
变更操作,或通过相关类型执行的delete
嵌套操作。 -
创建关系:通过相关类型执行的
connect
嵌套操作。 -
删除关系:通过相关类型执行的
disconnect
嵌套操作。 -
订阅:所有与
User
类型相关的订阅操作。