首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Patreon重定向后缺少浏览器本地存储

Patreon重定向后缺少浏览器本地存储
EN

Stack Overflow用户
提问于 2018-12-09 07:55:07
回答 1查看 585关注 0票数 0

我有一个简单的网页,它使用客户端脚本来存储浏览器本地存储中的一些用户配置。(复选框、展开/折叠菜单等的状态)

我的网页上有一个Patreon按钮。当用户单击它时,用户的浏览器将导航到Patreon身份验证页面,如果用户单击按钮以授予我访问其用户支持状态的权限,Patreon会将他们的浏览器重定向到我的站点上的路由,我在此记录他们的支持状态,然后将他们重定向回我的主页。

当用户最终回到我的主页时,用户的所有本地存储数据都丢失了。如果用户在返回“我的站点”后单击“刷新”,则仍然缺少本地存储。但是,如果他们关闭该选项卡并在新选项卡中打开“我的网站”(或导航到另一个网站,然后在同一选项卡中返回),则原始本地存储值将再次可见。

我知道浏览器本地存储与本地存储的来源相关联。https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

我已经确认协议(https)和域对于设置存储的点和用户返回到我的站点的点是相同的。我也已经确认了最终的着陆路线是相同的。

初始设置本地存储值的主页:https://www.example.com/page1最终登录页:https://www.example.com/page1

我注意到,如果我在Patreon重定向路由( Patreon最初重定向用户的位置,以及我记录用户支持状态的位置)停止用户,打开浏览器调试器并发出document.domain""

但是,设置document.domain并刷新不会恢复本地存储。

我在Firefox 63.0.3 (64位)和Chrome 71.0.3578.80 (64位)中都看到了这种行为。

你知道我会错过什么吗?

编辑这里是我用来将用户状态写入本地存储的代码:

代码语言:javascript
复制
if(localStorage.userOptions){ restoreOptsFromLocal(); }
else{ persistOptsToLocal(); }
...
restoreOptsFromLocal = function(){
    opts = JSON.parse(localStorage.getItem('userOptions'));
}
persistOptsToLocal = function(){ 
    localStorage.setItem('userOptions', JSON.stringify(opts));
}
EN

回答 1

Stack Overflow用户

发布于 2018-12-09 11:50:35

花了几个小时打猎和调试,仍然不明白根本原因。当前的解决方法是将Patreon href的目标设置为"_blank“,以便patreon身份验证过程在单独的窗口中进行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53688175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档