Domanda

Sto usando il negozio sessione basata cookie di default. Fondamentalmente, io sto usando Heroku e ho bisogno di andare da mia app: http://test1.myapp.com verso Heroku per una pagina: http://myapp.heroku.com/billing - così ho bisogno di accedere alla sessione quando vado a l'url Heroku. Mi piacerebbe accedere alla sessione [: user_id] sulla pagina Heroku, ma quando è andare alla pagina di Heroku viene generata una nuova sessione.

stavo pensando che potrei passare il session_id sull'URL principale nel querystring, ma non so come accedervi dalla pagina URL Heroku.

Ho provato questo:

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

, ma non funziona. E 'possibile accedere alle informazioni di sessione se si conosce l'id di sessione? O c'è un altro modo per leggere le informazioni di sessione da un altro url (ma tutti in app stessa guida)?

Grazie.

È stato utile?

Soluzione

Al fine di quello per funzionare è necessario configurare il dominio in Heroku in modo che l'applicazione è in esecuzione Heroku sotto lo stesso dominio di primo livello come l'applicazione principale. Per fare questo, aggiungere il dominio al tuo fatturazione applicazione in questo modo:

$ heroku domains:add billing.myapp.com

Assicurati di seguire istruzioni di Heroku per configurare il DNS.

Il tuo fatturazione applicazione sarà poi vivere a http://billing.myapp.com/billing (su Heroku). In questo modo il controller dovrebbe essere in grado di accedere alla stessa sessione e cookie.

Assicurarsi di impostare il dominio di sessione in ambienti / production.rb in entrambe le applicazioni:

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

Vorrei anche ricordare che si potrebbe considerare l'utilizzo di un qualche tipo di autenticazione condivisa o token di autenticazione tra le applicazioni, dal momento che i cookie possono potenzialmente essere manipolati o comunque compromessi.

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