x-graphql/field-guard
最新稳定版本:0.2.0
Composer 安装命令:
composer require x-graphql/field-guard
包简介
Managing access control of object fields
README 文档
README
Middleware for adding security layer to GraphQL schema
Getting Started
Install this package via Composer
composer require x-graphql/field-guard
Usages
Create permissions array mapping object type name, and it fields with rule, rule can be
boolean or instance of XGraphQL\FieldGuard\RuleInterface:
use GraphQL\Type\Definition\ResolveInfo; use XGraphQL\FieldGuard\RuleInterface; $isAdminRule = new class implements RuleInterface { public function allows(mixed $value, array $args, mixed $context, ResolveInfo $info) : bool{ return $context->isAdmin(); } public function shouldRemember(mixed $value,array $args,mixed $context,ResolveInfo $info) : bool{ return true; } }; $permissions = [ 'Query' => [ 'getUser' => true, /// all user can get user. 'getBook' => false, /// deny all user to get book. ], 'Mutation' => [ 'createUser' => $isAdminRule, /// only admin user can create user. ] ];
Then create middleware with $permissions above and apply to schema:
use XGraphQL\FieldMiddleware\FieldMiddleware; use XGraphQL\FieldGuard\FieldGuardMiddleware; $schema = ... $guardMiddleware = new FieldGuardMiddleware($permissions); FieldMiddleware::apply($schema, [$guardMiddleware]);
Credits
Created by Minh Vuong
统计信息
- 总下载量: 28.39k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-03-31