我遵循并使用了在以下网站找到的AuthDirective https:/www.apollographql.comdocsapollo-serverschemacreating-directives#enforcing-access-permissions .
它在查询和突变中运行良好。然而,我不明白在 "执行访问权限 "一节的结尾处有这样一句话:"这种方法的一个缺点是,如果在应用了AuthDirective之后,将字段添加到模式中,它不能保证字段会被封装"。在应用了AuthDirective之后,如何将字段添加到模式中?它说的是应用了AuthDirective的字段返回的结果吗?
如果 @auth
指令被应用于一个类型,该类型也可以有另一个指令应用于它,为该类型添加字段。例如,想象一个 @id
指令,增加了一个 id
字段到任何类型的应用。如果 @id
指令的应用 之后 的 @auth
指令、 id
字段的解析器永远不会由 @auth
指令,就像所有其他字段一样。指令是按照它们在类型定义中出现的顺序应用的,所以要避免这种情况很容易,但如果你大量使用指令的话,就要注意了。