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