在同一域但不同子域中的多个javascript应用程序之间共享Localstorage令牌

时间:2018-10-06 07:03:33

标签: javascript local-storage

我试图在同一域但位于不同子域的不同应用程序之间实施单一登录

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

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

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

并通过

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

但是现在,由于应用托管在主域中,但在子域中,它们无法访问相同的本地存储值

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

1 个答案:

答案 0 :(得分:0)

这是浏览器存储安全性问题,浏览器不允许这样做。 LocalStorage不能在子域之间共享。这些在Same Origin Policy下。

您可以使用一些IFrame技巧来做到这一点。有关更多信息,请查看链接here

编辑-1

还有另一种存储access-token的方法,您可以使用cookiessession存储。它们跨子域工作。建议使用cookiesession来管理令牌等。