首页 > 解决方案 > 在同一域但不同子域的多个 javascript 应用程序之间共享 Localstorage 令牌

问题描述

我正在尝试在托管在同一域但不同子域上的不同应用程序之间实现单点登录

这是主应用程序托管在 mydomain.com 上,我想与托管在 app1.mydomain.com 和 app2.mydomain.com 上的应用程序共享令牌

现在默认情况下,我通常通过以下方式在本地存储中设置我的令牌

       window.localStorage.setItem("access-token", value);

并通过检索它

       window.localStorage.getItem("access-token");

但是现在,应用程序托管在主域上但在子域上,它们无法访问相同的 localstorage 值

我该如何克服这个问题,以及除了 localstorage 之外是否还有更好的方法来存储 jwt 令牌

标签: javascriptlocal-storage

解决方案


这是浏览器存储安全问题,浏览器不允许。LocalStorage 不能跨子域共享。这些属于同源政策

你可以用一些IFrame技巧来做到这一点。有关更多信息,请查看此处的链接

编辑 - 1

还有另一种存储方式access-token,可以使用cookies或者session存储。这些跨子域工作。建议使用cookiesession管理代币等。


推荐阅读