سؤال

وأنا باستخدام تخزين ملف تعريف ارتباط جلسة الافتراضية القائمة. في الأساس، أنا باستخدام heroku ولست بحاجة للذهاب من بلدي التطبيق: http://test1.myapp.com أكثر من heroku عن صفحة واحدة: http://myapp.heroku.com/billing - لذلك أنا الحاجة إلى الوصول إلى الدورة عندما أذهب إلى رابط heroku. أود الوصول إلى الدورة [: USER_ID] على الصفحة heroku، ولكن عندما هو الذهاب إلى صفحة heroku يتم إنشاء الجديدة الدورة.

وأنا أفكر أنا يمكن تمرير SESSION_ID على رابط الرئيسي في سلسلة استعلام مواقع المعلومات، ولكن لا أعرف كيفية الوصول إليه من الصفحة heroku رابط.

وحاولت هذه:

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

ولكن هذا لا يعمل. هل من الممكن الحصول على المعلومات جلسة إذا كنت تعرف هوية الجلسة؟ أم أن هناك طريقة أخرى لقراءة المعلومات جلسة من رابط آخر (ولكن في نفس القضبان التطبيق)؟

وشكرا.

هل كانت مفيدة؟

المحلول

في أجل أن العمل سوف تحتاج إلى إعداد نطاقك في Heroku بحيث التطبيق Heroku يعمل تحت نفس TLD باسم التطبيق الرئيسي. للقيام بذلك، إضافة نطاقك إلى التطبيق الفوترة مثل ذلك:

$ heroku domains:add billing.myapp.com

تأكد من اتباع إرشادات Heroku في لإعداد DNS الخاص بك.

والتطبيق الفواتير الخاصة بك وسوف ثم العيش في http://billing.myapp.com/billing (وعلى Heroku). بهذه الطريقة يجب أن تكون وحدة تحكم قادرا على الوصول إلى الدورة والكوكيز نفسها.

وتأكد من تعيين المجال جلسة في بيئات / production.rb في كل التطبيقات:

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

وأود أن أذكر أيضا أنك قد تنظر في استخدام نوع من المصادقة المشتركة أو مصادقة رمزية بين التطبيقات، منذ الكوكيز يحتمل أن يتم اختراق أو المساس بها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top