6

Ho un sottodominio blog che funziona bene, tuttavia, il collegamento è scollegato da tutti i sottodomini e, di conseguenza, se un utente firma il suo cookie è valido solo sulle pagine non di sottodominio. Come posso impostare la mia app affinché i cookie siano validi in tutti i sottodomini e le pagine normali?Condividi un singolo cookie attraverso sottodomini

Ho lavorato su questo argomento: Share session (cookies) between subdomains in Rails? ma sfortunatamente senza successo. Ho anche provato questo approccio al middleware passo dopo passo, ma senza successo.

Sto utilizzando Rails 3.2.13.

Qualsiasi aiuto apprezzato! :)

+0

passando il dominio dovrebbe funzionare ... sei sicuro che stai testando correttamente? – aguynamedloren

+0

potresti approfondire? Non sono così esperto con i cookie ecc. Guarda, questo sta accadendo quando un utente effettua l'accesso: cookies [: remember_token] = user.remember_token. Un normale cookie standard. Come posso far funzionare questo cookie anche con tutti i sottodomini? –

+1

Hai provato ': cookie_store,: key => '_your_app_session',: domain =>" .yourdomain.com "'? –

risposta

16

Tutto quello che dovevo fare era specificare il dominio durante la creazione del cookie, come commentato in precedenza.

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

Mettere domain: all alla fine della riga nella configurazione/session_store.rb

ad es.

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

È inoltre necessario modificare questo parametro nella configurazione/ambienti/production.rb

config.action_dispatch.tld_length = 2 

Se il tuo dominio è example.com allora il vostro tld_length (Top Level Domain lunghezza) è 1 (che è il predefinito). example.com.au è 2, 127.0.0.1.xip.io è 5 e così via.