【发布时间】:2018-12-22 22:50:17
【问题描述】:
我正在尝试将我的 Apollo Graph QL 客户端 INSIDE 的默认标题更改为一个反应组件,但我根本无法在文档中找到任何内容。因此,在我的 index.js 中,我按照描述创建和链接我的客户端,并添加一个 JWT 令牌标头。但是如果我想更改我的 React 组件中的标题怎么办。例如,我想在 reauthenticate 时替换 Token。
在 Axios 中,您可以简单地对此进行操作。
axios.defaults.headers.common['Auth-Token'] = 'foo bar';
如何使用 React Apollo 做类似的事情?这是我的 index.js 的重要部分
const httpLink = createHttpLink({
uri: 'https://somesecureapi',
});
const authLink = setContext((_, { headers }) => {
const token = localStorage.getItem('token');
return {
headers: {
...headers,
authorization: token ? `Bearer ${token}` : "",
}
}
});
const client = new ApolloClient({
link: authLink.concat(httpLink),
cache: new InMemoryCache()
});
我尝试导出客户端,然后将其导入组件,创建一个新链接并更改旧链接,但这不起作用。
必须有一些更简单的方法。任何建议
【问题讨论】:
标签: reactjs redux graphql apollo