GraphQL Middlewares
Casbin遵循官方建议的方式为GraphQL端点提供授权,将授权的唯一真实来源设定为:https://graphql.org/learn/authorization/。 换句话说,Casbin应该位于GraphQL层和您的业务逻辑之间。
// 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中间件的贡献。 请通知我们,我们会将其添加到此列表中:)
- Go
- Node.js
- Python
中间件 | GraphQL实现 | 作者 | 描述 |
---|---|---|---|
graphql-authz | graphql | Casbin | 用于graphql-go的授权中间件 |
graphql-casbin | graphql | @esmaeilpour | Graphql和Casbin一起使用的实现 |
gqlgen_casbin_RBAC_example | gqlgen | @WenyXu | (空) |
中间件 | GraphQL实现 | 作者 | 描述 |
---|---|---|---|
graphql-authz | GraphQL.js | Casbin | 用于GraphQL.js的Casbin授权中间件 |
中间件 | GraphQL实现 | 作者 | 描述 |
---|---|---|---|
graphql-authz | GraphQL-core 3 | @Checho3388 | 用于GraphQL-core 3的Casbin授权中间件 |