Pergunta

Estou usando a loja de sessões baseadas em cookies padrão. Basicamente, estou usando o Heroku e preciso ir do meu aplicativo: http://test1.myapp.com até Heroku para uma página: http://myapp.heroku.com/billing - Então eu preciso acessar a sessão quando vou ao URL Heroku. Gostaria de acessar a sessão [: user_id] na página do Heroku, mas quando vá para a página Heroku e a nova sessão é gerada.

Eu estava pensando que poderia passar a session_id no URL principal da Querystring, mas não sei como acessá -lo na página do URL Heroku.

Eu tentei o seguinte:

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

Mas não está funcionando. É possível acessar as informações da sessão se você souber o ID da sessão? Ou há outra maneira de ler as informações da sessão de outro URL (mas tudo no mesmo aplicativo Rails)?

Obrigado.

Foi útil?

Solução

Para que isso funcione, você precisará configurar seu domínio no Heroku, para que o aplicativo Heroku esteja executando o mesmo TLD que o aplicativo principal. Para fazer isso, adicione seu domínio ao seu aplicativo de cobrança assim:

$ heroku domains:add billing.myapp.com

Certifique -se de seguir Instruções de Heroku Para configurar seu DNS.

Seu aplicativo de cobrança viverá em http://billing.myapp.com/billing (no Heroku). Dessa forma, o controlador deve poder acessar a mesma sessão e cookies.

Certifique -se de definir o domínio da sessão em ambientes/produção.rb em ambos os aplicativos:

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

Devo mencionar também que você pode considerar o uso de algum tipo de autenticação compartilhada ou autenticação de token entre os aplicativos, pois os cookies podem ser hackeados ou comprometidos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top