8

セッションに関して、固有ではない (他の人がこれを解決したに違いない) 問題があります。

シナリオは、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 セッションは機能します。これは最後の宣言であるため、これは理にかなっています。何か考えはありますか?

4

1 に答える 1

5

参照: Rails 3 session_store domain :all は実際に何をするのですか? 選択した回答は、サブドメイン間の共通セッションとトップ レベル ドメイン間の個別のセッションを許可するのに役立つ可能性があります。異なるトップ レベル ドメインで同じセッションを有効にするのは非常に難しい作業ですが、おそらく次の質問が役に立つかもしれません: Rails - Multiple top level domain and a single session/cookie

于 2013-01-17T12:22:52.453 に答える