Soy bastante nuevo en Rails and Rack, pero este tipo tenía un relato aparentemente sencillo sobre el uso de Rack to implement dynamic session domain middleware. El código se ve bien y lo he implementado aquí en mi máquina local, pero todavía no puedo trascender los dominios de nivel superior en un solo inicio de sesión.Rails - Dominios de cookies dinámicos usando Rack
Aquí está el código de middleware:
class SetCookieDomain
def initialize(app, default_domain)
@app = app
@default_domain = default_domain
end
def call(env)
host = env["HTTP_HOST"].split(':').first
env["rack.session.options"][:domain] = custom_domain?(host) ? ".#{host}" : "#{@default_domain}"
@app.call(env)
end
def custom_domain?(host)
domain = @default_domain.sub(/^\./, '')
host !~ Regexp.new("#{domain}$", Regexp::IGNORECASE)
end
end
Y luego, en environment.db:
config.load_paths += %W(#{RAILS_ROOT}/app/middlewares)
Por último, en production.db (y development.db):
config.middleware.use "SetCookieDomain", ".example.org"
Cualquier la ayuda es muy apreciada
EDIT: Estoy corriendo Rails 2.3.3 y 1.0 rack