【发布时间】: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