【问题标题】:rejectUnauthorized: false not being recognized in ApolloClientrejectUnauthorized: false 在 ApolloClient 中未被识别
【发布时间】:2021-01-28 06:02:29
【问题描述】:

我目前的设置是:

import {
  ApolloClient,
  ApolloProvider,
  gql,
  HttpLink,
} from '@apollo/client';
import fetch from 'node-fetch';
import { Agent } from 'https';
...

const agent = new Agent({
  rejectUnauthorized: false,
});

const httpLink = new HttpLink({
  uri: process.env.REACT_APP_GRAPHQL_URL,
  fetch: fetch,
  fetchOptions: {
    agent: agent
  },
});
...
const client = new ApolloClient({
  link: httpLink,
  cache: cache,
  typeDefs,
  connectToDevTools: true,
});
...
ReactDOM.render(
    <ApolloProvider client={client}>
      <App />
    </ApolloProvider>,
  document.getElementById('root')
);

当我useQuery 时,我得到createHttpLink.ts:121 POST https://*****.test/wp/graphql net::ERR_CERT_INVALID。据我所知,这是当前使用自签名证书的方式,但它似乎不起作用。否则我找不到任何文档。我当前的实现似乎忽略了拒绝有什么问题?

【问题讨论】:

  • @xadm 在没有帮助之前看到了那个帖子,我尝试添加 process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0; 仍然是同样的错误。
  • 我查看了 React Dev Tools 中的 Apollo Provider 并且 fetch options 中的 agent 对象为空。所以现在看来​​我的代码中的内容并没有进入浏览器。为什么我的 fetch 会删除它? Imgur

标签: graphql create-react-app apollo-client


【解决方案1】:

这不是一个完整的答案,但无论如何我都将其标记为已解决。它与 Apollo 客户端或节点获取无关,我在 Chrome(具体来说是 MacOS)中对此进行了测试,拒绝了自签名证书。我现在只是继续使用 Firefox 进行开发,因为它将接受证书。代理属性在开发工具中仍然显示为空,所以这可能是一个红鲱鱼?不确定,但我现在可以继续。

【讨论】:

    猜你喜欢
    • 2011-06-09
    • 2012-02-28
    • 2013-04-10
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多