バックグラウンド:
User やその他のさまざまなモデルを含む一連のモデルがあり、その一部には User への参照が含まれています。私は、Graffiti-mongoose アダプターを使用する Mongo データベースに支えられた、Graffiti によって生成された GraphQL API を介してクエリを実行するために、これらのモデルを公開しています。私の現在の REST API (GraphQL に移行中) は、JSON Web トークンを使用してユーザーを認証し、アクセス制御を処理するためにサーバー側にいくつかのカスタム許可ロジックを持っています。
問題:
現在ログインしているユーザーに基づいて、GraphQL のオブジェクトへのアクセスを制限したいと考えています。一部のモデルは、認証されていない呼び出しによる読み取りにアクセスできる必要があります。他のほとんどのモデルは、それらを作成したユーザーのみがアクセスできる必要があります。Graffiti で生成された API を介してオブジェクトへのアクセス制御を管理する最良の方法は何ですか?
一般に、GraphQL のアクセス制御の適切なパターンはありますか? 特に、Graffiti でそれを行うための良い例やライブラリはありますか?
ノート:
graffiti-mongoose にプレフックとポストフックが実装されており、それらを使用して認証用の基本的なバイナリ チェックを実行できることを理解しています。より詳細なアクセス制御ロジックを GraphQL API に組み込む方法を知りたいです。将来的には、特定のユーザー グループによって作成されたモデル インスタンスにアクセスできる管理者などをサポートしたいと考えています (たとえば、所属に管理者のグループが含まれるユーザー)。