如何通过Apolllo客户端传递授权标头以在graphql中使用

时间:2019-04-26 22:29:41

标签: reactjs graphql react-apollo apollo-client

在我的react应用程序中,我尝试与我进行的每个graphql查询/突变一起发送授权标头。

我可以在请求中看到标题,如下图所示:

enter image description here

但是我得到401作为响应。 当我在邮递员中运行相同的请求(带有授权标头)时,它可以工作,并且我收到数据作为响应。

这是我的apollo客户端设置:

import ApolloClient from 'apollo-client';
import {ApolloProvider} from 'react-apollo';
import { InMemoryCache } from 'apollo-cache-inmemory';
import { HttpLink } from 'apollo-link-http';
import { setContext } from 'apollo-link-context';

const authLink = setContext((_, { headers }) => {

// get the authentication token from redux store.
  const token = store.getState().loginData.jwt;
  // add the jwt token to the authorization header.
  return {
    headers: {
      ...headers,
      Authorization: token ? `Bearer ${token}` : "",
    }
  }
});
const httpLink = new HttpLink({
  uri: process.env.GRAPHQL_API_URL,
  credentials: 'same-origin' 
})

const client = new ApolloClient({
  cache: new InMemoryCache(),
  ssrMode: true,
  connectToDevTools: true,
  link: authLink.concat(httpLink)
});

控制台中没有任何错误。 响应头是:

enter image description here

0 个答案:

没有答案