Frage

Ich bin mit der Standard-Cookies in Ihrem Browser-Sitzung zu speichern. Grundsätzlich bin ich mit Heroku und ich brauche von meiner App gehen: http://test1.myapp.com zu Heroku über eine Seite für: http://myapp.heroku.com/billing - so ich Notwendigkeit, die Sitzung zuzugreifen, wenn ich auf die Heroku url gehen. Ich möchte die Sitzung zugreifen [: user_id] auf der Heroku Seite, aber wenn ist Sie auf der Heroku Seite eine neue die Sitzung erzeugt wird.

Ich dachte, ich die session_id auf der Haupt-URL in der Abfragezeichenfolgeflag passieren könnte, aber ich weiß nicht, wie es für den Zugriff aus der Heroku url Seite.

Ich habe versucht, diese:

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

, aber es funktioniert nicht. Ist es möglich, den Zugriff auf Sitzungsinformationen, wenn Sie die Session-ID wissen? Oder gibt es eine andere Art und Weise Sitzungsinformationen von einer anderen URL zu lesen (aber alle in den gleichen Schienen app)?

Danke.

War es hilfreich?

Lösung

Damit das funktioniert, müssen Sie Ihre Domain in Heroku einrichten müssen, so dass der Heroku App unter der gleichen TLD als Haupt App ausgeführt wird. Um dies zu tun, fügen Sie Ihre Domain an Ihre Rechnungs App wie folgt:

$ heroku domains:add billing.myapp.com

Stellen Sie sicher, folgen Heroku Anweisungen Ihre DNS einzurichten.

Ihre Rechnungs App wird dann bei http://billing.myapp.com/billing (auf Heroku). Auf diese Weise sollte der Controller in der Lage die gleiche Sitzung und Cookies zuzugreifen.

Seien Sie sicher, dass die Session-Domäne in Umgebungen / production.rb in beiden Anwendungen zu nutzen:

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

Ich sollte auch erwähnen, dass Sie sich anschauen sollten eine Art gemeinsamer Authentifizierung oder Token-Authentifizierung zwischen den Anwendungen verwendet werden, da Cookies möglicherweise gehackt werden kann oder auf andere Weise beeinträchtigt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top