仅在刷新后附加Apollo客户端JWT令牌

时间:2019-05-24 17:16:06

标签: reactjs authentication jwt apollo-client

我将来自graphql服务器的授权令牌保存在localStorage上,并将该令牌附加到授权标头。但是登录后(将令牌保存到localStorage),服务器将获得具有空令牌值的授权标头。但是,我可以通过浏览器的开发人员模式检查令牌在localStorage上是否存在。刷新页面后,服务器将获得正常的授权标头。如何使我的apollo客户端在第一次尝试时发送正确的标头?以下是我的阿波罗客户生成器。

export default new ApolloClient({
  uri: "MYSERVERENDPOINT",
  clientState: {
    defaults,
    resolvers
  },
  headers: {
    Authorization: `Bearer ${localStorage.getItem("token")}`
  }
});

2 个答案:

答案 0 :(得分:0)

通常,当您从localStorage获取项目时,最好使用async / await进行操作,以确保在返回之前先获取该项目。

尝试制作一个单独的函数,以使项目同步,并返回字符串文字并将其放入标头中。

答案 1 :(得分:0)

您必须使用代码手动重新加载页面。

尝试: window.location.reload()

相关问题