如何将令牌传递给Apollo请求?

时间:2017-11-02 01:18:35

标签: javascript react-apollo apollo-client

我想将一个令牌从我的redux商店传递给我的所有Apollo请求。我知道你可以转发cookies

const networkInterface = createNetworkInterface({
  uri: '/graphql',
  opts: {
    credentials: 'same-origin',
  },
});

但我想将它添加到标题中。

networkInterface.use([{
  applyMiddleware(req, next) {
    if (!req.options.headers) {
      req.options.headers = {};  // Create the header object if needed.
    }
    // get the authentication token from local storage if it exists
    const token = localStorage.getItem('token');
    req.options.headers.authorization = token ? `Bearer ${token}` : null;
    next();
  }
}]);

但如何从商店中取出token。从localStorage中取出它不是一个选项,因为我的应用程序是服务器端呈现的,所以我始终无法访问localStorage。我需要能够访问Redux商店。我该怎么做?

1 个答案:

答案 0 :(得分:0)

也许您可以导出商店并导入设置网络接口的位置。请参阅此answer