2009-07-30 11 views
5

Sono abbastanza nuovo per Rails e Rack, ma questo ragazzo ha avuto un articolo apparentemente semplice sull'uso di Rack to implement dynamic session domain middleware. Il codice sembra buono e l'ho implementato qui sul mio computer locale, ma non riesco ancora a superare i domini di primo livello su un singolo login.- Domini dinamici dei cookie con Rack

Ecco il codice 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 

E poi nel environment.db:

config.load_paths += %W(#{RAILS_ROOT}/app/middlewares) 

Infine in production.db (e development.db):

config.middleware.use "SetCookieDomain", ".example.org" 

Qualsiasi l'aiuto è molto apprezzato.

EDIT: Io corro Rails 2.3.3 e 1.0 Rack

risposta

1

ho avuto problemi simili convincere questo per lavorare in modalità di sviluppo. Quando stavo provando con localhost, non riuscivo a farlo funzionare. Tuttavia, accedendo tramite un dominio configurato in/etc/hosts per puntare a localhost, ad esempio computer.local, sono riuscito a farlo funzionare.

Problemi correlati