我有两个Web应用W1
(a.example.com
)和W2
(b.example.com
),它们使用基于OAuth 2 L1
和{{ 1}}。他们的前端L2
和F1
都是单页应用程序。 F2
和L1
都启用了CORS。
L2
是一个Web应用程序,我可以在后端和前端两者上进行编辑/管理,而W1
是我无法修改的旧版应用程序,尽管W2
的后端API是公开可用。因此,我可以访问W2
L2
端点以获取访问令牌,并将其用于对后端的进一步请求。
现在,/oauth/token
和L1
拥有独立的用户数据库,但是实际上两者中都存在具有相同凭据的相同用户。我需要确保当用户通过L2
前端登录W1
时,他同时登录了F1
和W1
,以便用户在其中单击特定按钮时W2
,F1
打开,并且用户已经登录F2
。
问题是W2
从其本地存储中标记为F2
的特定对象中读取用户信息。通常,当用户直接从user_info
登录时设置此对象。不幸的是,本地存储不是跨域的(F2
和a.example.com
具有不同的本地存储,并且不能读取/写入彼此的存储,它们只能自己读写)。这意味着即使b.example.com
可以通过向F1
端点的AJAX请求检索它,也无法从user_info
在F2本地存储中设置F1
对象在/<user>/info
上。
问题是:处理这种情况的正确方法是什么?我了解我正在尝试实现非常接近单一登录机制的功能,但是我不确定这是否是正确的用例,或者不确定是否有一个简单的解决方案只是我所忽略。
预先感谢您的帮助。