需要:使用一个应用程序进行多域会话。
我至少有两个域名:
mydomain.com
another-domain.net
全部由同一个Symfony应用程序覆盖(我在写这篇文章的时候使用的是3.4)。
我需要的是一种在任何这些网站上通过/login
路径和Guard身份验证器后面的通用表单登录进行身份验证的方法。
首先,这里有一个我正在使用的代码的要点:https://gist.github.com/Pierstoval/ca0e9845cfa1118e3d22ea14eb7c8929
情景:
connect
变量。在模板中,如果会话中有connect
var,我会在模板中添加这种代码:
window._CONNECT_PATHS = [
"//mydomain.com/{{ path('connect', {'id': app.session.id}) }}",
"//another-domain.net/{{ path('connect', {'id': app.session.id}) }}"
];
_CONNECT_PATHS
var由一个JS脚本捕获,该脚本只使用AJAX进行POST //mydomain(...)
HTTP调用。EventSubscriber
类捕获,“should”确保会话已共享。可以吗?它似乎有效,但有时当我在一个网站上进行身份验证时,我必须重新对其他网站进行身份验证。我无法弄清楚它什么时候发生,什么时候不发生。
有什么想法吗?