gqlgenでField単位の権限チェックをする方法
- POSTS
はじめに この記事は Go 4 Advent Calendar 2020 の 20 日目の記事です。
今回はgqlgenでField単位の権限チェックをする方法について書きたいと思います
(gqlgenの実装方法などについては過去記事を参照してください)
Field単位で権限チェックする方法 例えば、 記事(Article) に 社内ユーザのみ見れるメモ(memo) があったとします
# schema.graphql type Article { id: Int! title: String! body: String! memo: String! # 社内ユーザのみ観覧可 } memo を社内ユーザのみ観覧可能にする方法について1つ1つ見ていきたいと思います
1. Directive @inhouse といったDirectiveをFieldに付ける方法です
# schema.graphql directive @inhouse on FIELD_DEFINITION | OBJECT type Article { id: Int! title: String! body: String! memo: String! @inhouse # 社内ユーザのみ観覧可 } // directive_inhouse.go func Inhouse(ctx context.