您必须使用数据库。明确地说,你必须将会话存储在数据库中。如果您的域和所有子域读取单个数据库,则用户可以从不同域访问相同的会话。
默认情况下,HTTP客户端(浏览器)不允许从跨域读取cookie。所以你必须在你的cookie中明确地设置域名信息。
Let me explain clear,
让我们假设,你有一个主要领域,即mymaindomain.com
和你有一些子域名可能subdomain1.mymaindomain.com, subdomain2.mymaindomain.com, subdomain3.mymaindomain.com, and more
现在,用户登录你的主要领域mymaindomain.com
。而你的应用程序设置会话cookie来识别用户。默认情况下,浏览器检查主机向请求发送cookie。在你的情况下,如果用户移动到子域subdomain1.mymaindomain.com
,那么浏览器只是尝试创建新的会话。
要强制浏览器发送来自mymaindomain.com
的cookie,必须设置cookie的“Domain”属性。在这种情况下,显式域属性正好是mymaindomain.com
。现在假设用户移动到subdomain1.mymaindomain.com
,然后浏览器自动发送由mymaindomain.com
设置的会话cookie。
这是发生的,因为这里浏览器匹配突出显示部分在以下子域subdomain1.
mymaindomain.com。
为了让您的应用程序获得相同的会话cookie或用户会话,并且其余的工作应该照顾后端应用程序。同样的域名限制也发生在您的后端。如果你想支持子域名浏览器请求,您的子域名的应用程序应该读取数据库这是常见的mymaindomain.com
和其他子域像subdomain2.mymaindomain.com, subdomain3.mymaindomain.com, and more
注会话信息:这不会工作,如果您的域名是完全改变,我的意思是浏览器不会发送会话cookie,如果你的主机域被完全改变。
本地主机Web应用程序是否连接到api.localhost服务器端或从浏览器? – hgoebl