身份验证
GraphQL 库提供 @authentication
指令来配置某些操作和模式不同部分的身份验证。
使用 |
操作
可以配置身份验证,使其仅在某些操作上进行验证
-
创建
-
读取
-
聚合
-
更新
-
删除
-
创建关系
-
删除关系
-
订阅
例如,要仅要求对用户进行更新或删除身份验证
type User @authentication(operations: [UPDATE, DELETE]) {
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
类型相关的所有订阅操作。