我有一个围绕会话的非唯一问题(其他人一定已经解决了这个问题)。
场景是我有 5 个顶级域(domain_a、domain_b、domain_c、domain_d、domain_e)和每个下的多个子域。我的应用程序需要在同一顶级域中的子域之间共享会话,例如 sub_1.domain_b.com 和 sub2.domain_b.com 可以共享,但 sub_3.domain_c.com 将是不同的会话。更复杂的是,如果域 a 和 b 和 c 和 d 也能够共享会话,那将是理想的。
所以规则:
domain_a 与 domain_b 以及其中的所有子域共享会话。很高兴能在 cookie_store 中
domain_c 与 domain_d 以及其中的所有子域共享会话。很高兴能在 cookie_store 中
domain_e 仅在其子域内共享其会话。这需要在 active_record_store 中
我怎样才能使这项工作?
我尝试使用以下内容创建初始化程序:
MyApp::Application.config.session_store :cookie_store, :key => '_domain_a', :domain => '.domain_a.com'
MyApp::Application.config.session_store :cookie_store, :key => '_domain_b', :domain => '.domain_b.com'
MyApp::Application.config.session_store :cookie_store, :key => '_domain_c', :domain => '.domain_c.com'
MyApp::Application.config.session_store :cookie_store, :key => '_domain_d', :domain => '.domain_d.com'
MyApp::Application.config.session_store :active_record_store, :key => '_domain_e', :domain => '.domain_e.com'
但是我不确定这是否有效。domain_e.com 会话有效,这是有道理的,因为它是最后一个声明,有什么想法吗?