アクセスは、セッションIDでセッション情報をレール
-
20-09-2019 - |
質問
私は、デフォルトのクッキーベースのセッションストアを使用しています。基本的に、私はHerokuのを使用していると私は私のアプリから移動する必要があります: http://test1.myapp.com 上で1つのページのためのHerokuのに: http://myapp.heroku.com/billing に - 私はそう私はHerokuのURLに行くときに、セッションにアクセスする必要があります。 [:user_idの]私はセッションにアクセスしたいのですがHerokuのページではなく、Herokuのページに移動されたときに、新しいセッションが生成されます。
私はクエリ文字列内のメインURLにSESSION_IDを渡すことができます考えていたが、私はHerokuのURLページからアクセスする方法がわかりません。
私はこれを試してみました。
session[params[:sid]][:user_id]
が、それは働いていません。それはあなたがセッションIDを知っていれば、セッション情報にアクセスすることは可能ですか?それとも別のURLから(しかし、すべて同じレールのアプリで)セッション情報を読むための別の方法は何ですか?
ありがとう。
解決
それが動作するためには、あなたは、Herokuのアプリがメインアプリと同じTLDの下で実行されるように、Herokuの中で、あなたのドメインを設定する必要があります。これを行うには、そのようなあなたの課金アプリにドメインを追加します:
$ heroku domains:add billing.myapp.com
Herokuの取扱説明書は、あなたのDNSを設定するにはに従ってください。
あなたの課金アプリは、その後に( http://billing.myapp.com/billingするに住んでますHerokuの)。こうすることで、コントローラは、同じセッションやクッキーにアクセスすることができるはずです。
両方のアプリで/ production.rb環境でのセッションのドメインを設定してくださいます:
config.action_controller.session = { :domain => ".myapp.com" }
私はまた、クッキーが潜在的にハッキングされるか、そうでない場合は妥協することができますので、あなたは、アプリケーション間で共有認証またはトークン認証のいくつかの種類を使用して検討するかもしれないことを言及する必要があります。