Domanda

Sto cercando di impostare un cookie in un dominio e accedere da un altro. È possibile?

Ecco quello che sto facendo nella mia app:

In un controller, l'azione di prova si accede tramite questo URL:

http://myapp.com/account/test

def test
  cookies[:foo] = {
    :value => 'something',
    :domain => 'myapp.heroku.com'
  }
end

In stesso controller, l'azione test2 si accede tramite questo URL:

http://myapp.heroku.com/account/test2

def test2 
  puts "foo=#{cookies[:foo]}"
end

, ma il valore del cookie [: foo] è sempre vuota. E 'possibile accedere il cookie di dominio heroku.com. Ho pensato che l'impostazione del: opzione domain permetterebbe questo.

Grazie.

È stato utile?

Soluzione

L'opzione: dominio (e l'impostazione del dominio sui cookie in generale) funziona veramente solo attraverso sottodomini. vale a dire per app1.mysite.com e app2.mysite.com - si potrebbe impostare il dominio cookie per .miosito.com e lo hanno condiviso tra i sub-domini

.

Questo è solo il modo i cookie sono progettati per lavorare. myapp.com e myapp.heroku.com sono domini separati, non sotto-domini, in modo da tentare di impostare il dominio in questo modo non è andare a lavorare.

Ci sono alcuni modi per ottenere veri biscotti cross-domain - ma sono piuttosto coinvolto.

Altri suggerimenti

Non si può fare questo per un dominio diverso, ma si può fare per i sottodomini. Così, per esempio, un'applicazione in esecuzione su example.com dominio può impostare un cookie per subdomain.example.com ma non per exampleapp.com.

Devo aggiungere, se fosse possibile impostare i cookie per altri domini, arbitrarie, ci sarebbero enormi problemi di sicurezza / privacy.

È possibile impostare gli stessi biscotti per tutti i domini nel modo seguente in environment.rb:

 ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS[:session_domain => '.mydomain.com']

qui per la documentazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top