跳转到主要内容

GraphQL 中间件

根据 GraphQL 的授权指南,授权应该集中在同一处——位于 GraphQL 层与你的 resolver 之间。可以在 resolver 中(或一个薄封装中)使用 Casbin,对类型、字段或操作进行访问控制。

// Casbin authorization logic lives inside postRepository
var postRepository = require('postRepository');

var postType = new GraphQLObjectType({
name: 'Post',
fields: {
body: {
type: GraphQLString,
resolve: (post, args, context, { rootValue }) => {
return postRepository.getBody(context.user, post);
}
}
}
});

可用的 GraphQL 中间件​

可用的 Casbin GraphQL 集成:

中间件GraphQL 实现作者说明
graphql-authzgraphqlCasbin适用于 graphql-go 的授权中间件
graphql-casbingraphql@esmaeilpourGraphQL 与 Casbin 的集成示例
gqlgen_casbin_RBAC_examplegqlgen@WenyXu(空)