javascript - 重定向到新的外部 url 时如何保留 localStorage
问题描述
我面临一个问题,我无法跨重定向保存 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 中:
但是当我使用重定向到新的 url 时,它们不会被保留window.open(process.env.NEW_SITE_URL)
。
credentials
重定向到新的 url 时,如何确保对象被保留?由于我要重定向到的应用程序中编写的逻辑,我无法使用会话和 cookie。它只credentials
在 localStorage 中查找。
解决方案
我过去曾遇到过这个问题。localStorage 仅保留每个网站。我所做的是我在 cookie 中附加了用户凭据。
推荐阅读
- go - 扩展 kubernetes client-go
- javascript - 有人可以解释下面的正则表达式吗?
- phpstorm - 为什么 Xdebug 3 日志是空的?
- javascript - Javascript Fetch API PUT 请求
- c++ - 如何像在创作者中一样在 coco2dx 中制作网格布局?
- binding - 删除控制器后,laravel 抛出 BindingResolutionException 错误(laravel 7)
- java - @controller 不工作,但 @restcontroller 在 Spring Boot 中工作
- php - Laravel 根据关系获取数据
- php - 为什么这段代码显示 $req 变量未定义?
- scala - 使用相同的方法生成派生特征,但在 Scala 中的每个方法中没有第一个参数