我试图在同一域但位于不同子域的不同应用程序之间实施单一登录
这是主要应用程序,托管在mydomain.com上,我想与app1.mydomain.com和app2.mydomain.com托管的应用程序共享令牌
现在默认情况下,我通常通过以下方式在本地存储中设置令牌:
window.localStorage.setItem("access-token", value);
并通过
检索 window.localStorage.getItem("access-token");
但是现在,由于应用托管在主域中,但在子域中,它们无法访问相同的本地存储值
我该如何克服这个问题,以及除本地存储之外还有更好的方法来存储jwt令牌
答案 0 :(得分:0)
这是浏览器存储安全性问题,浏览器不允许这样做。 LocalStorage不能在子域之间共享。这些在Same Origin Policy下。
您可以使用一些IFrame
技巧来做到这一点。有关更多信息,请查看链接here
编辑-1
还有另一种存储access-token
的方法,您可以使用cookies
或session
存储。它们跨子域工作。建议使用cookie
或session
来管理令牌等。