如何保留身份验证令牌?

时间:2021-06-04 14:49:44

标签: reactjs local-storage session-storage

React 网站有以下要求:

  1. 在新标签页中打开当前网站的页面时保持登录状态。
  2. 如果浏览器关闭并重新打开,则注销。
  3. 在页面刷新时保持登录状态。
  4. IE11 支持 :(.

如果我在 sessionStorage 中保留身份验证令牌,它满足 2 要求但不满足 1。
如果我使用 localStorage - 1 但不是 2。

如果我使用:

window.onunload = () => {
  localStorage.removeItem('authtoken');
};

它满足 1 和 2 条件,但它也会在我刷新页面时清除存储,这也不应该发生!

这个检查页面是否刷新的解决方案在IE11下无法使用 https://stackoverflow.com/a/53307588/12994741

那么我应该如何保留身份验证令牌?有什么办法可以做到吗?也许可以防止在 React 中刷新时卸载事件?

1 个答案:

答案 0 :(得分:1)

您可以使用 session cookies

  1. 当您在不同选项卡中打开同一个网站时,它会保持其价值。

  2. 一旦浏览器退出,它们就会过期。 https://stackoverflow.com/a/8894280/15881471

  3. 它在页面刷新时保持其价值。

  4. 它适用于 IE11,但有一些注意事项。 https://github.com/cmp-cc/vue-cookies/issues/29