使用React.js存储在fetch()上生成的令牌

时间:2018-07-19 15:33:11

标签: javascript reactjs rest api

从此代码中我得到一个令牌,我需要存储该令牌以用于另一次提取,以便刷新令牌,这是最​​好的方法?

我只能访问函数.then中的变量...

我宁愿将令牌存储在已编码的cookie中,但是我不怎么处理cookie的反应,也不知道如何编码或解码它们。

componentDidMount() {
  fetch("theURL/api-token-auth/", {
    method: "POST",
    headers: {
      Accept: "application/json",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      email: "EMAIL",
      password: "PASS"
    })
  })
    .then(res => {
      if (res.ok) {
        return res.json();
      } else {
        throw Error(res.statusText);
      }
    })
    .then(json => {
      this.setState({
        isLoaded: true,
        token: json
      });

      let token = this.state.token;
      console.log("var token: ", token);
    })
    .catch(error => console.error(error));
}

1 个答案:

答案 0 :(得分:2)

看看localStorage,这是存放令牌的好地方。

localStorage.setItem('token', 'userToken');

然后要恢复值,请执行以下操作: const token = localStorage.getItem('token');

在这里深入了解:Web Storage