سؤال

أرغب في الحصول على بعض تطبيقات Rails عبر خوادم مختلفة تتشارك في نفس الجلسة.يمكنني القيام بذلك داخل نفس الخادم ولكن لا أعرف ما إذا كان من الممكن المشاركة عبر خوادم مختلفة.أي شخص فعل ذلك بالفعل أو يعرف كيفية القيام بذلك؟

شكرًا

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

المحلول

اعتمادًا على كيفية إعداد تطبيقك، يمكنك يستطيع يمكنك بسهولة مشاركة ملفات تعريف الارتباط من المواقع الموجودة في نفس النطاق (foo.domain، bar.domain، domain) عن طريق إعداد تطبيقاتك لاستخدام نفس السر:http://www.russellquinn.com/2008/01/30/multiple-rails-applications/

الآن، إذا كان لديك مواقع مختلفة، مثل sdfsf.com، أو dsfsadfsdafdsaf.com، وما إلى ذلك.سيتعين عليك القيام بالكثير من الحيل لأن طبيعة ملفات تعريف الارتباط تقيدها بمجال معين.ما تحاول القيام به بشكل أساسي هو استخدام البرمجة النصية عبر المواقع، بدلاً من الاستيلاء على جلستك، لقراءتها من الجلسات الأخرى.

في هذه الحالة، من خلال الجمع بين استخدام نفس سر ملف تعريف الارتباط وما إلى ذلك ثم بعض البرمجة النصية عبر المواقع، يمكنك استخراج معلومات الجلسة يدويًا وإعادة إنشائها على كل موقع (أو إذا كنت تستخدم جلسة ActiveRecord {أو NFS session dir}، الرابط مع الموجود).الأمر ليس سهلاً، ولكن يمكن القيام به.

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

نصائح أخرى

استخدم ال مخزن جلسة قاعدة البيانات.والمختصر هو هذا:

لإنشاء الجدول، قم بتشغيله في وحدة التحكم

rake db:sessions:create

في Environment.rb الخاص بك، قم بتضمين هذا السطر

config.action_controller.session_store = :active_record_store

حاول استخدام الجلسات المدعومة بقاعدة البيانات.

في Rails 2.0 يوجد الآن CookieStore الذي يخزن جميع بيانات الجلسة في ملف تعريف ارتباط مشفر على جهاز العميل.

http://izumi.plan99.net/blog/index.php/2007/11/25/rails-20-cookie-session-store-and-security/

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