2

我正在尝试graphql-php在我的项目中实施授权。这个想法是有一个用户访问数组,我可以在其中为每个用户组设置对特定查询和突变的访问,并在执行查询之前在 graphql 控制器中实现检查访问方法。

一种方法是自己解析请求,但我想知道是否有人知道如何访问查询的完整路径,正如我所见,它显示在https://webonyx.github.io/graphql-php/错误处理/

<?php
[
    'message' => 'My reported error',
    'category' => 'businessLogic',
    'locations' => [
    ['line' => 10, 'column' => 2]
],
    'path' => [
        'path',
        'to',
        'fieldWithException'
    ]
];
4

1 回答 1

1

可以通过ResolveInfo每个解析器函数获取的对象在解析器中访问该路径。文档没有显示它,但每个解析器的第四个参数是ResolveInfo(来自 webonyx 源$resolveFn($source, $args, $context, $info))。简单的得到是:

function ($root, $args, $context, $info) {
    $path = $resolveInfo->path;
    // your decisioning

}

你会根据它做决定。

于 2017-11-10T13:18:20.910 回答