GraphQL Middlewares
Casbin segue o modo oficialmente sugerido para fornecer autorização para endpoints GraphQL, tendo uma única fonte de verdade para autorização: https://graphql.org/learn/authorization/. Em outras palavras, Casbin deve ser colocado entre a camada GraphQL e sua lógica de negócios.
// 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);
}
}
}
});
Middlewares GraphQL Suportados
Uma lista completa dos middlewares GraphQL Casbin é fornecida abaixo. Qualquer contribuição de terceiros em um novo middleware GraphQL é bem-vinda. Por favor, informe-nos, e nós o adicionaremos a esta lista:)
- Go
- Node.js
- Python
Middleware | Implementação GraphQL | Autor | Descrição |
---|---|---|---|
graphql-authz | graphql | Casbin | Um middleware de autorização para graphql-go |
graphql-casbin | graphql | @esmaeilpour | Uma implementação do uso conjunto de Graphql e Casbin |
gqlgen_casbin_RBAC_example | gqlgen | @WenyXu | (vazio) |
Middleware | Implementação GraphQL | Autor | Descrição |
---|---|---|---|
graphql-authz | GraphQL.js | Casbin | Um middleware de autorização Casbin para GraphQL.js |
Middleware | Implementação GraphQL | Autor | Descrição |
---|---|---|---|
graphql-authz | GraphQL-core 3 | @Checho3388 | Um middleware de autorização Casbin para GraphQL-core 3 |