Je suis assez nouveau sur Rails and Rack, mais ce gars-là avait une idée apparemment simple sur l'utilisation de Rack to implement dynamic session domain middleware. Le code semble bon et je l'ai implémenté ici sur ma machine locale, mais je ne suis toujours pas capable de transcender les domaines de premier niveau sur une seule connexion.Rails - Domaines de cookie dynamiques utilisant Rack
Voici le code 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
Et puis dans environment.db:
config.load_paths += %W(#{RAILS_ROOT}/app/middlewares)
Enfin dans production.db (et development.db):
config.middleware.use "SetCookieDomain", ".example.org"
Tous l'aide est grandement appréciée.
EDIT: Je suis en cours d'exécution Rails 2.3.3 et rack 1.0