我正在Node中构建GraphQL Server并处理权限主题。我进行了一项研究,大部分建议是将这种逻辑放在分解器中的某个位置。
我希望它能够将权限检查作为中间件步骤放置,也就是在它到达相应的解析程序之前。这将具有几个优点,例如:-授权逻辑是集中的,所有解析程序都可以重用-解析器逻辑更加简洁明了
对这种方法有何看法?任何支持基于GraphQL方案的权限验证的现有库
您可以使用schema-directives,这对于graphql更自然
这里是一个可以帮助您的软件包 graphql-directive-auth
GraphQL.js本身不支持解析器的“中间件”-由于它们是函数,因此您可以将它们与任何其他函数包装在一起以添加逻辑,而无需重复自己。也就是说,您可以为更好的API添加graphql-middleware,以向多个解析器添加逻辑。如果使用graphql-middleware
,则可以添加专门处理授权的graphql-shield。