Question

J'utilise le magasin de la session à base de cookies par défaut. En fait, j'utilise Heroku et je dois aller de mon application: http://test1.myapp.com vers Heroku pour une page: http://myapp.heroku.com/billing - donc je besoin d'accéder à la session quand je vais à l'url Heroku. Je voudrais accéder à la session [: user_id] sur la page Heroku, mais quand est aller à la page heroku une nouvelle session est générée.

Je pensais que je pouvais passer le session_id sur la principale url dans la chaîne de requête, mais je ne sais pas comment y accéder depuis la page URL Heroku.

J'ai essayé ceci:

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

mais il ne fonctionne pas. Est-il possible d'accéder aux informations de session si vous connaissez l'ID de session? Ou est-il une autre façon de lire les informations de session d'une autre URL (mais dans la même application rails)?

Merci.

Était-ce utile?

La solution

Pour que travailler, vous devrez configurer votre domaine Heroku afin que l'application est en cours d'exécution Heroku sous le même TLD que l'application principale. Pour ce faire, ajoutez votre domaine à votre application de facturation comme ceci:

$ heroku domains:add billing.myapp.com

Assurez-vous de suivre instructions de Heroku pour configurer votre DNS.

Votre application de facturation sera alors à vivre http://billing.myapp.com/billing (sur Heroku). De cette façon, le contrôleur devrait pouvoir accéder à la même session et les cookies.

Assurez-vous de définir le domaine de la session dans des environnements / production.rb dans les deux applications:

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

Je tiens également à mentionner que vous pouvez envisager d'utiliser une méthode d'authentification partagée ou jeton d'authentification entre les applications, car les cookies peuvent potentiellement être piraté ou autrement compromis.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top