【问题标题】:Use Rover with graphql-shield将 Rover 与 graphql-shield 一起使用
【发布时间】:2022-03-02 20:46:09
【问题描述】:

我在子图上使用graphql-shield 并使用rover-cli 来生成架构。

我已将回退规则设置为拒绝所有内容,因为我不希望默认情况下可以访问任何内容。但是现在rover-cli 在自省子图时失败了。我知道您可以将令牌传递给 rover,但在构建过程中我无法这样做。

我已经看过这个问题:Apollo Server Federation with graphql-shieldgraphql-shieldrover GitHub 存储库,但到目前为止还没有运气。

我也尝试过像这样显式添加SubgraphIntrospectQuery

export const permissions = shield(
  {
    Query: {
      SubgraphIntrospectQuery: allow,
    },

  },
  {
    fallbackRule: deny,
    debug: true,
    allowExternalErrors: true,
  }
);

感谢您的帮助!

【问题讨论】:

    标签: node.js graphql apollo-federation graphql-shield


    【解决方案1】:

    试试这个:

    export const permissions = shield({
        Query: {
            _service: allow,
        },
        _Service: {
            sdl: allow
        }
    },{
        fallbackRule: deny,
        debug: true,
        allowExternalErrors: true,
    });
    

    这似乎是 Apollo 在执行自省时使用的。您可能还需要允许:“Query._entities”、“Query._service”、“_Entity.*”、“_Service.*”、“_Any.*”,因为 Apollo 也使用这些。

    您可能应该实现某种形式的安全性,而不是对这些使用“允许”,但我希望这能回答您的问题...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-09
      • 2021-09-03
      • 2021-08-14
      • 2016-09-24
      • 2016-09-19
      • 2021-03-24
      • 2021-12-01
      • 1970-01-01
      相关资源
      最近更新 更多