Pregunta

Estoy usando el almacenamiento de sesión basada en cookies por defecto. Básicamente, estoy usando heroku y tengo que ir de mi aplicación: http://test1.myapp.com a heroku para una página: http://myapp.heroku.com/billing - por lo que necesita tener acceso a la sesión cuando voy a la url heroku. Me gustaría tener acceso a la sesión [: user_id] en la página heroku, pero cuando es ir a la página heroku se genera un nuevo la sesión.

Yo estaba pensando que podía pasar el session_id en la URL principal en la cadena de consulta, pero no sé cómo acceder a ella desde la página url heroku.

He intentado esto:

session[params[:sid]][:user_id]  

pero que no está funcionando. ¿Es posible acceder a la información de la sesión si se conoce el identificador de sesión? O hay otra manera de leer la información de sesión desde otra URL (pero en la aplicación mismos rieles)?

Gracias.

¿Fue útil?

Solución

Para que eso funcione, necesitará configurar su dominio en Heroku para que la aplicación Heroku se ejecuta en el mismo dominio de nivel superior como la aplicación principal. Para hacer eso, agregar su dominio a su aplicación de facturación de este modo:

$ heroku domains:add billing.myapp.com

Asegúrese de seguir instrucciones del heroku para configurar el DNS.

La aplicación de facturación será luego vivir en http://billing.myapp.com/billing (en Heroku). De esta manera el controlador debe ser capaz de acceder a la misma sesión y cookies.

Asegúrese de ajustar el dominio sesión en entornos / production.rb en ambas aplicaciones:

config.action_controller.session = { :domain => ".myapp.com" }

También debería mencionar que es posible considerar el uso de algún tipo de autenticación compartida o testigo de autenticación entre las aplicaciones, ya que las cookies pueden potencialmente ser pirateados o en peligro de otro modo.

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