2017-11-01 6 views
0

私のプロジェクトでgraphql-phpの認証を実装しようとしています。その考え方は、クエリを実行する前に、特定のクエリや突然変異に対する各ユーザグループのアクセスを設定し、check-accessメソッドをgraphqlコントローラに実装できるユーザアクセス配列を用意することです。GraphQL PHPの完全なクエリパス

一つの方法は、要求を自分で解析するだろうが、私は誰もが、私はそれがhttps://webonyx.github.io/graphql-php/error-handling/

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

答えて

0

パスに示されて見てきたように、クエリに完全なパスにアクセスする方法を知っていればと思いましてすべてのリゾルバ関数が取得するResolveInfoオブジェクトを通じてリゾルバでアクセスできます。ドキュメントには表示されませんが、すべてのリゾルバの4番目の引数はResolveInfo(webonyxソース$resolveFn($source, $args, $context, $info))です。単に取得する:

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

} 

あなたはそれに基づいて決定しますか?

+0

解決機能では、現在のタイプまでのパスのみのクエリのフルパスが返されるため、これにはわずかな問題があります。しかし、これはまだ良くないですし、私はこれで作業することができますので、どうもありがとうございます。 – ElvisElvis

+0

私はそれがあなたが望んだと思ったのですか?代わりに何がありますか? – AndHeiberg

+0

コントローラのパスを取得するので、各解決に "check"関数を書く必要はありませんが、クエリが実行される前に一度は書く必要はありませんが、graphql-phpでは可能です。 – ElvisElvis

関連する問題