興味深い事例があります。Rails 2.3 アプリケーションのホワイトラベル機能に取り組んでいますが、動的セッション ドメインの設定に問題があります。
したがって、各ホワイト ラベルには独自のドメイン (company1.com、company2.com、company3.com) が必要です。さらに、それぞれがサブドメインをサポートし、それらの間でセッションを共有する必要があります。
つまり、test1.company1.com、test2.company1.com、company1.com <= は共通のセッションを共有する必要があります。test1.example.com, example.com <= は共通のセッションを共有する必要がありますが、 company1.com とは異なります。
一般的なケース (単一のベース ドメインの場合) では、次のように行われます。
file:production.rb
config.action_controller.session[:domain] = '.company1.com'
複数のドメインをサポートしたい場合は、アクセスしたサイト ドメインに基づいて、この構成オプションを動的に設定する必要があります。私は現在、この方法でそれを達成しようとしています:
file:environment.rb
require 'dispatcher'
module ActionController
class Dispatcher
def set_session_domain
tld_size = SubdomainFu.tld_size+1
host_name = @env['HTTP_HOST'].split('.')[-tld_size,tld_size].join('.')
ActionController::Base.session = { :domain => ".#{host_name}" }
end
before_dispatch :set_session_domain
end
end
ただし、上記のコードは機能しません。
同様のことを成功させましたか、それとも問題/解決策がどこにあるのか分かりますか?
お時間をいただきありがとうございます