Pregunta

Estoy tratando de establecer una cookie en un dominio y acceder a él desde otro. ¿Es esto posible?

Esto es lo que estoy haciendo en mi aplicación:

En un controlador, se accede a la acción de prueba a través de este url:

http://myapp.com/account/test

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

En mismo controlador, se accede a la acción test2 a través de este url:

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

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

pero el valor de las cookies [: foo] siempre está en blanco. ¿Es posible acceder a la cookie del dominio heroku.com. Pensé establecer la opción: dominio permitiría esto.

Gracias.

¿Fue útil?

Solución

El: opción de dominio (dominio y el establecimiento de las cookies en general) sólo funciona a través de los subdominios. es decir, para app1.mysite.com y app2.mysite.com - se puede establecer el dominio de la cookie a .mysite.com y lo han compartido entre los subdominios

.

Esto es sólo cómo funcionan las cookies están diseñadas para funcionar. myapp.com y myapp.heroku.com son dominios separados, no subdominios, por lo que el intento de establecer el dominio de esta manera no se va a trabajar.

Hay algunas maneras de lograr las cookies de varios dominios verdaderos - pero son en lugar involucrados.

Otros consejos

No se puede hacer esto para un dominio diferente, pero puede hacerlo para los subdominios. Así, por ejemplo, una aplicación que se ejecuta en example.com dominio puede establecer una cookie para subdomain.example.com pero no para exampleapp.com.

Tengo que añadir, si fuera posible establecer cookies para otros dominios, arbitrarias, no habría problemas masivos de seguridad / privacidad.

Puede establecer las mismas cookies para todos los dominios de la siguiente manera en environment.rb:

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

aquí para la documentación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top