2012-09-25 7 views
7

Ich habe eine nicht-eindeutige (andere Leute müssen dies gelöst haben) Problem rund um Sitzungen.Rails session_store mehrere Domänen

Das Szenario ist, dass ich 5 Top-Level-Domains (Domain_a, Domain_b, Domain_c, Domain_d, Domain_e) und mehrere Subdomains unter jedem haben. Meine App muss Sitzungen zwischen Subdomains in derselben Top-Level-Domain teilen, z. B. sub_1.domain_b.com & sub2.domain_b.com kann teilen, aber sub_3.domain_c.com wäre eine andere Sitzung. Um die Dinge komplexer zu machen, wäre es ideal, wenn die Domänen auch in der Lage wären, Sitzungen zu teilen.

So sind die Regeln:

  • DOMAIN_A Aktien Sitzung mit DOMAIN_B und mit allen Subdomains in ihnen. Glücklich für dieses in einem cookie_store zu sein

  • domain_c teilt Sitzung mit domain_d und mit allen Subdomains in ihnen. Glücklich für dieses in einem cookie_store zu sein

  • domain_e teilt nur seine Sitzung innerhalb seiner Subdomains. Dies muss in einem active_record_store sein

Wie kann ich das machen funktioniert?

Ich habe versucht, in einen initialiser mit dem unten zu schaffen:

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' 

Allerdings bin ich nicht sicher, dass dies funktioniert. domain_e.com Sitzung funktioniert, was würde Sinn machen, da es die letzte Erklärung ist, irgendwelche Gedanken?

Antwort