Friday, May 11, 2007

Multiple subdomain cookies in Rails

We needed to share a a cookie generated by Rails across multiple subdomains. I ended up solving the problem with this code, added to my ApplicationController:

DOMAINS = ['mydomain.com'].freeze

DOMAINS.each do |domain|
session :session_domain => ".#{domain}", :if => lambda { |request| request.host.dup.chomp!(domain) }
end

I haven't verified if this is also necessary, but you may need:

ActionController::Base.session_options[:session_key] = 'my_cookie_name'
ActionController::Base.session_options[:session_domain] = '.mydomain.com'


Thanks to RailsWeenie for that one.

No comments: