Node.js GraphQL实现";“不允许”;

Node.js GraphQL实现";“不允许”;,node.js,permissions,graphql,graphql-js,express-graphql,Node.js,Permissions,Graphql,Graphql Js,Express Graphql,我有一个GraphQLAPI,它由我实现的权限系统管理 我尝试使用Graphql shield,但如果客户端请求一个禁止的字段,我不想在整个请求中出错,所以我实现了自己的权限系统 现在,我需要解决一个问题: 我实现权限系统的方式意味着检查每个字段是否允许,如果不允许,则返回null。但是,我想返回一些指示,表明该字段实际上不是空的,但该字段是“不允许的” 我想用两种方法来做: 在每次检查期间,我将所有不可访问的字段附加到某个查询范围的变量,并随查询一起返回(可能在某种中间件中) 我用一个“允许

我有一个GraphQLAPI,它由我实现的权限系统管理

我尝试使用Graphql shield,但如果客户端请求一个禁止的字段,我不想在整个请求中出错,所以我实现了自己的权限系统

现在,我需要解决一个问题:

我实现权限系统的方式意味着检查每个字段是否允许,如果不允许,则返回null。但是,我想返回一些指示,表明该字段实际上不是空的,但该字段是“不允许的”

我想用两种方法来做:

  • 在每次检查期间,我将所有不可访问的字段附加到某个查询范围的变量,并随查询一起返回(可能在某种中间件中)
  • 我用一个“允许”字段扩展模式中的所有对象,在该字段中我返回权限值

有什么建议吗?

我不值得这么努力。。。api faq或文档(可在graphiql/Playway中获得)可以包含关于“意外空”、ACL原因等的通知。对于大多数用例来说,这已经足够了

如果您仍然希望在响应中包含一些[debug]信息,那么扩展就是为了这个,例如,-在本例中:

  • 只需附上一份“现场访问被拒绝”的[结构化]通知列表
  • 在总体响应返回之前,将它们(在解析器中/从解析器中)收集到某个上下文对象中,附加到中间件(?)中
也要使其可配置(调试模式)