跳转至主要内容

GraphQL Middleware

按照 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-authzgraphqlCasbingraphql-go 的授权中间件
graphql-casbingraphql@esmaeilpourGraphQL 与 Casbin 集成示例
gqlgen_casbin_RBAC_examplegqlgen@WenyXu(空)