6

Ich habe eine Blogs Subdomain, die gut funktioniert, jedoch ist die Anmeldung von allen Subdomains getrennt, und folglich, wenn ein Benutzer sich in seinem Cookie anmeldet, ist nur auf den Nicht-Subdomain-Seiten gültig. Wie kann ich meine App so einstellen, dass die Cookies in allen Sub-Domains und normalen Seiten gültig sind?Teilen Sie einen einzigen Cookie über Subdomains

Ich arbeitete durch dieses Thema: Share session (cookies) between subdomains in Rails?, aber leider ohne Erfolg. Ich habe sogar versucht, diese lange Schritt für Schritt Rack Middleware-Ansatz, aber ohne Erfolg.

Ich verwende Rails 3.2.13.

Jede Hilfe wird geschätzt! :)

+0

Übergabe der Domäne sollte funktionieren ... Sind Sie sicher, dass Sie richtig testen? – aguynamedloren

+0

könnten Sie das näher ausführen? Ich bin nicht so erfahren mit Cookies usw. Schau, das passiert, wenn sich ein Benutzer anmeldet: cookies [: remember_token] = user.remember_token. Ein normaler Standard-Cookie. Wie kann ich diesen Cookie mit allen Subdomains arbeiten lassen? –

+1

Haben Sie versucht, ': cookie_store,: key => '_your_app_session',: domain =>" .yourdomain.com "'? –

Antwort

16

Alles, was ich tun musste, war die Domäne beim Erstellen des Cookies anzugeben, wie oben bereits erwähnt.

cookies[:remember_token] = { value: user.remember_token, domain: ".lvh.me" } 
1

Put domain: all am Ende der Zeile in config/session_store.rb

zB.

YourApp::Application.config.session_store :encrypted_cookie_store, key: '_yourapp_session', domain: :all 

Sie können auch

config.action_dispatch.tld_length = 2 

Wenn Ihre Domain example.com ist dieser Parameter in Ihrer config/Umgebungen/production.rb ändern müssen, dann ist Ihre tld_length (Top Level Domain Länge) 1 (das ist der Standard). example.com.au ist 2, 127.0.0.1.xip.io ist 5, und so weiter.