L'accesso rotaie informazioni di sessione per sessione id
-
20-09-2019 - |
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.
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.