【问题标题】:How to preserve localStorage when redirecting to a new external url [duplicate]重定向到新的外部 url 时如何保留 localStorage [重复]
【发布时间】:2020-08-06 09:01:03
【问题描述】:

我遇到了无法跨重定向保存 localStorage 的问题。 这是我的代码:

// Call newSitelogin(). Set response(credentials) to localStorage. Redirect to new url.
newSitelogin({ uuid, password })
  .then(() => {
    window.open(process.env.NEW_SITE_URL); // This line clears localStorage.
  })
  .catch(() => replaceRouteWith('/'));

调用 api 并在 localStorage 中设置响应的端点

newSitelogin(payload) {
  return yield put.resolve({
      [RSAA]: {
        endpoint: `/auth/hubv3-login`,
        method: 'POST',
        body: JSON.stringify(payload),
        types: [
          ACTION.LOGIN_REQUEST_PERFORM,
          {
            type: ACTION.LOGIN_REQUEST_SUCCESS,
            payload: (action, state, res) =>
              getJSON(res).then(json => localStorage.setItem('credentials', JSON.stringify(json))), // setting response to localStorage.
          },
          ACTION.LOGIN_REQUEST_FAILURE,
        ],
      },
  });
};

我可以看到凭据正确存储在我的应用程序的 localStorage 中:

但当我使用window.open(process.env.NEW_SITE_URL) 重定向到新网址时,它们不会被保留。

当重定向到一个新的 url 时,我如何确保 credentials 对象被保留? 由于我要重定向到的应用程序中编写的逻辑,我无法使用会话和 cookie。它只在 localStorage 中查找 credentials

【问题讨论】:

  • 看起来网址不同。您是否正在重定向到外部链接?
  • 是的,我正在重定向到外部网址
  • localstorage in 只保存在同一主机内

标签: javascript reactjs google-chrome local-storage redux-saga


【解决方案1】:

我过去曾遇到过这个问题。 localStorage 仅保留每个网站。我所做的是我在 cookie 中附加了用户凭据。

【讨论】:

    猜你喜欢
    • 2020-09-24
    • 1970-01-01
    • 2015-09-29
    • 2012-05-14
    • 1970-01-01
    • 2013-08-06
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多