2011-01-28 2 views
9

Io uso ideare per l'autenticazione e voglio che la segue per lavorare: registraROTAIE/escogitare - impostando un cookie escogitare per persistono in diversi sottodomini

  1. utente in in [http://mydomain.com].
  2. L'utente effettua un pagamento a [https://secure.mydomain.com]
  3. L'utente ritorna a [http://mydomain.com/action] di continuare a utilizzare il sistema

Sto seguendo questo tutorial: http://clearcove.ca/blog/2010/11/how-to-secure-a-rails-app-on-heroku-with-ssl-firesheep/

, ma sono nella parte in cui ho bisogno per fare in modo che Devise faccia ciò che fa autologicamente qui. Aiuto!! ;)

risposta

21

Posso essere un po 'in ritardo per questo, ma per chi guarda nel futuro, è una soluzione abbastanza facile. Aggiungi questo al file di configurazione del proprio ambiente:

Rails3App::Application.config.session_store :cookie_store, :key => '_rails3_app_session', :domain => :all 
# change "Rails3App" to the name of your rails app. 

La parte importante di questo è: domain =>: tutti, dal momento che dice a Rails per permettere sottodomini pure. Altri hanno suggerito di utilizzare: domain => ".mydomain.com", ma: domain =>: tutto fa il lavoro e non richiede di inserire il nome del tuo dominio.

Nota: se non funziona quando si riavvia il server, probabilmente si ha un file session_store.rb nella propria inizializzazione/cartella che lo sovrascrive. Basta cambiare la linea in quel file, o rimuovere quel file e spostarlo nella tua configurazione.

Inoltre, ho dovuto posizionare in modo specifico la riga nel mio file production.rb poiché la modifica nel file session_store.rb ha interrotto le mie sessioni per lo sviluppo (utilizzando l'indirizzo IP).

7

Addendum: se ancora non funziona, anche se sei abbastanza sicuro avete cancellato i tuoi vecchi cookie, rinominare del cookie chiave - solo per assicurarsi. (dopo ore di risoluzione dei problemi, questo era tutto ciò che dovevo fare per farlo funzionare.)